ASP.Net MVC错误验证 - 如何在将自定义视图模型传递给视图时显示验证消息

时间:2009-12-21 18:42:38

标签: c# asp.net-mvc linq-to-sql validation views

我一直在为我的应用添加错误和业务验证,当我使用强类型化的视图测试一个模型时,让我们说位置,我得到验证摘要以及每个字段的验证消息通过,加上我的css按预期突出显示相应的字段......

...当我尝试使用强烈键入自定义视图模型的视图时,假设我传递了它的位置 - 所以用户可以输入一个新的,以及

IEnumerable<Location> locations

,因此它会列出新位置表单下方的所有现有位置。当我这样做时,我得到了验证摘要,但是没有显示每个字段的消息,也没有css将*和突出显示应用于每个不正确的字段。

我正在使用Linq to SQL,因此我将所有验证添加为部分类,因此在这种情况下,所有验证都来自部分类位置,据我所知,将使用linq to的设计器文件进行编译sql创建并添加我的业务验证。这个问题是否发生,因为我没有传递视图MyApp.Models.Location,而是传递它MyApp.Models.MyCustomViewModel?如果是这样,那么我最好的方法是什么才能使用一个表单来创建和列表?

1 个答案:

答案 0 :(得分:0)

我能够正常工作 - 我在POST方法中更改了返回值以返回

return View(new MyCustomViewModel(location) { });

而不是

return RedirectToAction(new MyCustomViewModel(location) { });

希望如果有人遇到我遇到的同样问题,这会有所帮助 - 这是我自己对View的工作方式的误解,而不是RedirectToAction。