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 / 模型 - 防止模型预填充表单输入字段的主要内容,如果未能解决你的问题,请参考以下文章