MVC Razor - 默认值为文本框类型日期的当前日期

Anu*_*nup 13 asp.net-mvc date razor asp.net-mvc-4

我有一个Textbox类型为date.我正在尝试设置textbox当前日期的默认值.

@Html.TextBoxFor(x => x.Date, new { @id = "Date", @type = "date", 
                                    @value = DateTime.Now.ToShortDateString() })
Run Code Online (Sandbox Code Playgroud)

以上行未设置默认值.如何将默认值设置为当前日期?

ps2*_*oat 30

正如Stephen Muecke所说,你需要在模型上设置属性的值.

// in controller method that returns the view.
MyModel model = new MyModel();
model.Date = DateTime.Today;

return View(model);
Run Code Online (Sandbox Code Playgroud)

而你的剃刀将是:

@Html.TextBoxFor(x => x.Date, "{0:yyyy-MM-dd}", new { @class = "form-control", @type = "date"})
Run Code Online (Sandbox Code Playgroud)

请注意,在使用方法时,应该自动idname属性和属性分配给属性名称,因此您无需显式设置属性.For@Html.TextBoxFor()id

  • 我怀疑 OP 可能不希望属性 `Date` 是一个 `string`。相反,将属性设置为`DateTime.Now` 或`DateTime.Today` 并使用`@Html.TextBoxFor(m => m.Date, "{0:dd-MM-yyyy}", new { @class = " form-control"})` 仅设置 `@type = "date"` 如果你想呈现浏览器的日期选择器(在这种情况下,格式必须是 `yyyy-MM-dd`) (2认同)

小智 27

这是在视图中管理的更好方法

@Html.TextBoxFor(x=> x.Date, new { @Value = @DateTime.Now.ToShortDateString() })
Run Code Online (Sandbox Code Playgroud)

  • 这应该是公认的答案.直截了当,更容易实现. (2认同)

Pam*_*amy 5

<input asp-for="date" value="@DateTime.Today" type="datetime" class="form-control" />

这对我有用。请记住根据您的型号更改“日期”。

如果您也需要时间,请使用它

<input asp-for="date" value="@DateTime.Now" type="datetime" class="form-control" />