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

Asp.net mvc MVC Razor-默认值为文本框类型日期的当前日期,asp.net-mvc,asp.net-mvc-4,date,razor,Asp.net Mvc,Asp.net Mvc 4,Date,Razor,我有一个文本框,类型为日期。我正在尝试将文本框的默认值设置为当前日期 @Html.TextBoxFor(x => x.Date, new { @id = "Date", @type = "date", @value = DateTime.Now.ToShortDateString() }) 上面的行没有设置默认值。如何将默认值设置为当前日期?正如Stephen Muecke所说,您需要在模型上设置属性的值 // i

我有一个
文本框
,类型为
日期
。我正在尝试将
文本框的默认值设置为当前日期

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

上面的行没有设置默认值。如何将默认值设置为当前日期?

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

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

return View(model);
你的剃须刀应该是:

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

请注意,当使用
For
方法(如
@Html.TextBoxFor()
)时,
id
name
属性应自动分配给属性名称,因此不需要显式设置
id
属性。

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

@Html.TextBoxFor(x=> x.Date, new { @Value = @DateTime.Now.ToShortDateString() })

另一种解决方案:

 @Html.TextBoxFor(model=>model.CreatedOn, new{@value= System.DateTime.Now})
它对我这边有效,当然对你这边也有效。

 $(document).ready(function () {
        var dateNewFormat, onlyDate, today = new Date();

        dateNewFormat = today.getFullYear() + '-';
        if (today.getMonth().length == 2) {

            dateNewFormat += (today.getMonth() + 1);
        }
        else {
            dateNewFormat += '0' + (today.getMonth() + 1);
        }

        onlyDate = today.getDate();
        if (onlyDate.toString().length == 2) {

            dateNewFormat += "-" + onlyDate;
        }
        else {
            dateNewFormat += '-0' + onlyDate;
        }

        $('#mydate').val(dateNewFormat);
    });
这对我有用。记住根据您的型号更改“日期”

如果你也需要时间,就用这个


在将属性
日期
传递到视图之前,只需在模型中设置
日期的值。我怀疑OP可能不希望属性
日期
成为
字符串。相反,将属性设置为
DateTime.Now
DateTime.Today
,并使用
@Html.TextBoxFor(m=>m.Date,{0:dd-MM-yyyyy},new{@class=“form control”})
仅设置
@type=“Date”
如果要呈现浏览器日期选择器(在这种情况下,格式必须是
yyyyyy-MM-dd
)谢谢@StephenMuecke我确实希望它采用
日期
格式…我使用了
{0:yyyy-MM-dd}
&然后它才起作用..因为HTML5输入日期需要RFC3339格式的日期@阿努普,请注意IE在所有浏览器中使用它都有一些问题,因此值得测试。@StephenMuecke,我总是希望数据在发送到视图时是字符串。所有格式化都发生在控制器中,因此视图中存在非常小的逻辑。欢迎使用StackOverflow。谢谢你的回答。最好以我所做的方式格式化代码,以便于阅读。非常适合我的需要。这应该是公认的答案。直截了当且易于实现。不过,在服务器端进行任何处理总是更好的。