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

thd*_*thd 18 entity-framework asp.net-mvc-2

我正在使用Entity Framework(v4)实体.我有一个名为Car的实体,其Year属性为integer.Year属性不允许NULL.我的创建视图中有以下内容:

<%= Html.TextBoxFor(model => model.Year) %>
Run Code Online (Sandbox Code Playgroud)

我需要在CarController中的HttpGet Create操作中返回一个新的Car对象(由于其他要求).

目前,Year文本框中显示零,因为Year属性不允许NULL.我想在Create视图中显示一个空文本框.我该怎么做呢?

nab*_*rid 44

使用Html属性重载.在剃须刀中它将是:

@Html.TextBoxFor(model => model.Year, new { Value = "" })
Run Code Online (Sandbox Code Playgroud)

  • 同样重要的是要注意"值"必须有一个大写"V"才能使用,但这是最好的解决方案. (14认同)
  • 我也在其中一个链接问题中对类似答案进行了评论......应该注意的是,当与典型的MVC服务器端验证一起使用时,这种方法效果不佳,您可以使用验证错误重新显示视图(Ex;` if(!ModelState.IsValid)返回View(viewmodel)`).无论何时在页面加载时呈现文本框,它都将显示一个空字符串.这对于常规的首次呈现页面非常有用,但是当用户由于验证失败而返回时会很糟糕.无论他们在字段中输入的数据都将丢失并替换为空字符串. (3认同)

小智 1

试试这个:

Html.TextBox("Year", "")
Run Code Online (Sandbox Code Playgroud)