我使用ASP.NET MVC(1.0),星火视图引擎(1.0)和亚音速(3.0.0.3)。编辑模型对象不绑定,查看预期
我有一些麻烦的“编辑”视图才能正常工作。所以,在我的控制,我有一个显示编辑表单视图下面的控制器操作:
[AcceptVerbs(HttpVerbs.Get)]
public virtual ActionResult Edit(string name)
{
var plot = Plot.SingleOrDefault(p => p.UserID == LoggedInUser.ID && p.UrlFriendlyName == name);
// ViewData["plot"] = plot;
return View(plot);
}
该视图上回发到下列控制器动作形式:
[AcceptVerbs(HttpVerbs.Post)]
public virtual ActionResult Edit(Plot plot)
{
var validator = new PlotValidator();
try
{
var results = validator.Validate(plot);
if (!results.IsValid)
{
...
}
}
}
的问题,我是的,第一个控制器动作实际上并没有用提交给它的Plot对象的值填充表单。我能得到它来填充表单的唯一方法是通过添加绘图到的ViewData:
ViewData["plot"] = plot;
用于填充编辑表单,但是当我编辑的值,并将其提交回上面列出的第二控制器动作,它只是发送回来,基本上是一个新的值与新值,而不是发送到编辑窗体与更新值的情节。
我敢肯定,我可能只是简单的东西,但我似乎无法弄清楚它是什么。我的表单上的所有字段都带有前缀为“plot”的ID。
任何人都知道/明白我做错了吗?谢谢。
是的,我看到在Spark演示解决方案之一(我认为是Northwind Demo),我试过了,出于某种原因,UpdateModel似乎没有做任何事情。它根本不会改变剧情的状态,尽管我可以看到表单对象中有预期的数据。我似乎无法像预期的那样得到这些东西,这就是为什么我认为这只是我缺少的东西。 – 2009-09-17 03:55:11