ASP.NET / 模型 - 防止模型预填充表单输入字段
Posted
技术标签:
【中文标题】ASP.NET / 模型 - 防止模型预填充表单输入字段【英文标题】:ASP.NET / Model - Prevent model from pre-populating form input fields 【发布时间】:2011-11-28 14:48:38 【问题描述】:当我在表单中将模型传递给我的视图时,字段会预先填充默认值,特别是如果模型属性是 int 数据类型,是否有办法防止这种情况发生?
例如:
型号:
public class MyModel
[Key]
public int MyKey get; set;
public int MyInt get; set;
public string MyString get; set;
控制器:
public class MyController : Controller
public ActionResult MyAction(int id)
return View(context.MyModel.Single(x=>x.MyKey == id));
查看:
@model MyNamespace.MyModel
@using(html.BeginForm())
@Html.HiddenFor(x=>x.MyKey)
@Html.EditorFor(x=>x.MyInt)
@Html.EditorFor(x=>x.MyString)
<input type="submit" value="Submit />
在视图中,MyInt 的输入字段将预先填充 0,而 MyString 输入将为空。我也希望 MyInt 为空。
编辑:
为了澄清,我只希望在页面加载时输入字段为空,并且不包含其默认值 0
【问题讨论】:
【参考方案1】:使用int?
代替int
可以让您在输入中保留空值。
附:这是相关的问题,但 DateTime
类型:Setting default values for a Model in MVC3
【讨论】:
哇哦,就这么简单,谢谢你的回答,我会在有能力的时候把它标记为答案!以上是关于ASP.NET / 模型 - 防止模型预填充表单输入字段的主要内容,如果未能解决你的问题,请参考以下文章
如何根据 asp.net mvc4 中的模型列表填充 ListBox?
如何在 ASP.NET MVC 3 中为填充的下拉列表创建视图模型
从 ASP.NET MVC 复杂模型创建 KnockoutJS 模型