假设我有一个模型:
public MyClass
{
public int Id {get;set;}
public string Name {get;set;}
public int ContentId {get;set;}
}
假设我访问了控制器的操作:
[HttpGet]
public ActionResult Create(int id)
{
MyClass mc = new MyClass();
mc.Id = 49;
mc.ContentId = id;
mc.Name = "Sample";
return View("Create", mc);
}
“创建”视图是使用 MyClass 进行强类型化的,它有帮助程序 @Html.TextBoxFor(x => x.Id)。
如果我通过调用 MyController/Create?id=15 来调用操作,文本框将显示值 15 而不是 49。MVC 将忽略我在操作中设置的 ID 属性,并使用查询中的那个。
考虑到这种行为没有记录在案,我觉得这很奇怪。
对此有什么好的评论吗?