Entity framework 在EF实体中的not null属性上使用Html.TextBoxFor显示空文本框

Entity framework 在EF实体中的not null属性上使用Html.TextBoxFor显示空文本框,entity-framework,asp.net-mvc-2,Entity Framework,Asp.net Mvc 2,我正在使用实体框架(v4)实体。我有一个名为Car的实体,其Year属性的类型为integer。Year属性不允许为NULL。我的“创建”视图中有以下内容: <%= Html.TextBoxFor(model => model.Year) %> model.Year)%%> 我需要在CarController中的HttpGet Create操作中返回一个新的汽车对象(由于其他要求) 当前,由于Year属性不允许NULL,因此Year文本框中显示零。我想在“创建”视图中显示一

我正在使用实体框架(v4)实体。我有一个名为Car的实体,其Year属性的类型为integer。Year属性不允许为NULL。我的“创建”视图中有以下内容:

<%= Html.TextBoxFor(model => model.Year) %>
model.Year)%%>
我需要在CarController中的HttpGet Create操作中返回一个新的汽车对象(由于其他要求)

当前,由于Year属性不允许NULL,因此Year文本框中显示零。我想在“创建”视图中显示一个空文本框。我该怎么做?

试试这个:

Html.TextBox("Year", "")

使用Html属性重载。在razor中,它将是:

@Html.TextBoxFor(model => model.Year, new { Value = "" })

Try这是指您正试图附加到字段中,或希望使用空TextBoxFor修改现有字段

Html.TextBoxFor(model => model.Year, Model.Year="")

如果您使用的是强类型TextAreaFor helper,则无法直接设置默认值。强类型助手的要点是,它将文本区域绑定到模型属性,并从中获取值。如果您想要一个默认值,那么输入模型就可以实现这一点。您也可以切换到非强类型的TextArea帮助器。对于这样的情况,它为您提供了更大的灵活性:

   @{
          var defaultValue= "";
        }
    @Html.TextArea("Model.Description", defaultValue, new { Value = "added text", @class = "form-control", @placeholder = "Write a description", @rows = 5 })

我可以这样做,但我更喜欢使用Html.TextBoxFor@Html.TextBoxFor(model=>model.Year,new{Value=”“})允许模型绑定,这个答案不允许。同样重要的是要注意,“Value”必须有大写字母“V”才能起作用,但这是最好的解决方案。因为我还在一个链接问题中对类似的答案进行了评论。。。需要注意的是,当与典型的MVC服务器端验证一起使用时,如果(!ModelState.IsValid)返回视图(viewmodel),则会重新显示带有验证错误的视图(例如;
)。每当文本框在页面加载时呈现时,它都会显示一个空字符串。这对于定期第一次呈现页面非常有用,但是当用户由于验证失败而返回时就不好了。他们在字段中输入的任何数据都将丢失并替换为空字符串。