ASP.NET Core MVC中View中的格式化日期

Alv*_*zon 7 c# asp.net-core-mvc asp.net-core

关于使用模型将日期时间转换为日期,我遇到了问题.

类库中的模型

public partial class LoanContract
{
    [DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}")]
    public DateTime LoanDateStart { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

项目模型

public class ModelLoan
{
    public LoanContract loanContract { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

控制器代码

 myList.loanContract = new LoanContract { LoanDateStart = DateTime.Today };
Run Code Online (Sandbox Code Playgroud)

视图:

<input disabled type="date" asp-for="loanContract.LoanDateStart" id="dpDateNow" class="form-control" />
Run Code Online (Sandbox Code Playgroud)

它显示如下:yyyy-MM-dd我想要实现的是我想要改变它MM/dd/yyyy.我尝试使用,.ToString("MM/dd/yyyy")但它不起作用.

Fra*_*ies 9

在您的模型中尝试使用它:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
Run Code Online (Sandbox Code Playgroud)

并在您的控制器中将DateTime更改为Date:

myList.loanContract = new LoanContract { LoanDateStart = Date.Today };
Run Code Online (Sandbox Code Playgroud)

希望这对你有所帮助.

  • 仅当我还添加了 [DataType(DataType.Date)] 时,这才对我有用 (2认同)

小智 6

如果在模型中定义不起作用,您可以在视图文件中使用:

@String.Format("{0:dd/MM/yyyy}",ViewBag.TerminoDaAvaliacao)
Run Code Online (Sandbox Code Playgroud)

此 ViewBag 包含一个 DateTime 值。时间随着这种格式定义而消失。没有必要在模型文件定义中按日期更改日期时间。


Mat*_*nda 6

简单实用,使用asp-format,例子:

<input asp-for="MyDate" asp-format="{0:dd/MM/yyyy}" class="form-control" />
Run Code Online (Sandbox Code Playgroud)

或者:

@Html.TextBoxFor(model => model.MyDate, "{0:dd/MM/yyyy}", new { @class = "form-control" })
Run Code Online (Sandbox Code Playgroud)


小智 5

我也使用解决了这个问题.ToString("d")。我收到“MM/DD/YYYY”的输出。