【发布时间】:2012-10-03 20:23:23
【问题描述】:
假设我有一个模型:
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 属性,并使用查询中的那个。
考虑到这种行为没有记录在案,我觉得这很奇怪。
这方面有什么好的cmet吗?
【问题讨论】:
-
你能列出视图的代码吗?否则,我们只能猜测您是如何使用您的模型的。此外,您在问题标题中使用了 MVC4,但问题被标记为 MVC3(尽管它不是特定于任何一个)。