关于使用模型将日期时间转换为日期,我遇到了问题。
类库中的模型
public partial class LoanContract
{
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime LoanDateStart { get; set; }
}
来自项目的模型
public class ModelLoan
{
public LoanContract loanContract { get; set; }
}
控制器中的代码
myList.loanContract = new LoanContract { LoanDateStart = DateTime.Today };
查看:
<input disabled type="date" asp-for="loanContract.LoanDateStart" id="dpDateNow" class="form-control" />
它显示如下:yyyy-MM-dd
我想要实现的是我想将其更改为MM/dd/yyyy
。我尝试使用.ToString("MM/dd/yyyy")
,但它不起作用。
答案 0 :(得分:7)
在您的模型中尝试使用它:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
在您的控制器中将DateTime更改为日期:
myList.loanContract = new LoanContract { LoanDateStart = Date.Today };
希望这对你有所帮助。
答案 1 :(得分:3)
如果在模型中定义不起作用,则可以在视图文件中使用:
@String.Format("{0:dd/MM/yyyy}",ViewBag.TerminoDaAvaliacao)
此ViewBag包含DateTime值。这个格式定义的时间消失了。没有必要在模型文件定义中通过日期更改日期时间。
答案 2 :(得分:2)
我也使用#ID
解决了这个问题。我收到了“MM / DD / YYYY”的输出。
答案 3 :(得分:1)
在模型中添加[DataType(DataType.Date)]
[Column(TypeName = "Date")]
[DisplayName("Date of birth")]
[DataType(DataType.Date)]
答案 4 :(得分:0)
简单实用,请使用asp-format
,例如:
<input asp-for="MyDate" asp-format="{0:dd/MM/yyyy}" class="form-control" />
或者:
@Html.TextBoxFor(model => model.MyDate, "{0:dd/MM/yyyy}", new { @class = "form-control" })
答案 5 :(得分:0)
这可能是所要解决问题的错误解决方案,但希望对您有所帮助。如果您尝试仅输入日期(无时间),则Model.IsValid将返回验证错误,提示日期输入格式不正确。要解决此问题,只需将其添加到模型中即可。
[Display(Name = "Date")]
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}")]
[DataType(DataType.Date)]
public DateTime Date { get; set; }
在asp.net中使用数据属性具有jQuery客户端验证自动支持的优点。 (由Asp.Net生成)
答案 6 :(得分:0)
对于那些想要改变视图中模型日期格式的人,无论Model类是什么(这是我期望的答案)。这在Razorpages和MVC中都适用。
只需将.ToString(“ dd / MM / YYYY”)添加到要显示的属性中即可。
例如
@Model.DateOfBirth.ToString("<Use formatting here>")
如果只想显示日期的一部分(例如月份和年份),而在其他地方则需要显示日期和时间,那么这很好。
答案 7 :(得分:0)
我认为这是dotnet核心上dateformat转义字符的错误。以上解决方案均不适合我。只有这种方法解决了我的问题。 why does DateTime.ToString("dd/MM/yyyy") give me dd-MM-yyyy?
[DisplayFormat(DataFormatString = "{0:dd'/'MM'/'yyyy}", ApplyFormatInEditMode = true)]
或
<input asp-for="DateProperty" asp-format="{0:dd'/'MM'/'yyyy}">
答案 8 :(得分:0)
有时候这可能非常有用,
<input asp-for="DateProperty" asp-format="**@Model.DateProperty.ToString($"{0:dd/MM/yyyy}")**">