MVC4 TextBoxFor覆盖模型属性

Adm*_*vić 1 asp.net-mvc asp.net-mvc-3

说我有一个模型:

public MyClass
{
    public int Id {get;set;}
    public string Name {get;set;}
    public int ContentId {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

我们假设我访问控制器的动作:

[HttpGet]
public ActionResult Create(int id)
{
    MyClass mc = new MyClass();
    mc.Id = 49;
    mc.ContentId = id;
    mc.Name = "Sample";
    return View("Create", mc);
}
Run Code Online (Sandbox Code Playgroud)

"创建"视图是使用MyClass强类型的,它有助手@ Html.TextBoxFor(x => x.Id).

如果我通过调用MyController/Create?id = 15来调用action,则textbox将显示值15而不是49.MVC将忽略我的ID属性集,并使用查询中的ID属性.

考虑到这种行为无法记录,我觉得这很奇怪.

对此有何好评?

Avi*_*hen 7

ModelState.Clear()在Action的开头使用