【问题标题】:ASP.NET / Model - Prevent model from pre-populating form input fieldsASP.NET / 模型 - 防止模型预填充表单输入字段
【发布时间】: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

【问题讨论】:

    标签: asp.net-mvc-3 model razor


    【解决方案1】:

    使用int? 代替int 可以让您在输入中保留空值。

    附:这是相关的问题,但 DateTime 类型:Setting default values for a Model in MVC3

    【讨论】:

    • 哇哦,就这么简单,谢谢你的回答,我会在有能力的时候把它标记为答案!
    猜你喜欢
    • 2010-10-30
    • 1970-01-01
    • 2015-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-03
    • 1970-01-01
    • 2021-04-14
    相关资源
    最近更新 更多