Asp.net mvc 用于覆盖模型属性的MVC4文本框
假设我有一个模型:Asp.net mvc 用于覆盖模型属性的MVC4文本框,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,假设我有一个模型: 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.Conten
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);
}
“Create”视图是MyClass的强类型视图,它有helper@Html.TextBoxFor(x=>x.Id)
如果通过调用MyController/Create?id=15调用操作,textbox将显示值15而不是49。MVC将忽略正在运行的my ID属性集,并使用查询中的属性集
考虑到这种行为没有任何记录,我觉得这相当奇怪
对此有什么好的评论吗?而不是
@Html.TextBoxFor(x => x.Id)
使用:
并查看这是否为您提供了所需的功能。在操作开始时使用
ModelState.Clear()。一个很好的例子是:
能否列出视图的代码。否则,我们只能猜测你是如何使用你的模型的。此外,您在问题标题中使用了MVC4,但问题被标记为MVC3(尽管这两个问题都不是特定的)。
@Html.TextBoxFor(x => Model.Id)