我一直在为我的应用添加错误和业务验证,当我使用强类型化的视图测试一个模型时,让我们说位置,我得到验证摘要以及每个字段的验证消息通过,加上我的css按预期突出显示相应的字段......
...当我尝试使用强烈键入自定义视图模型的视图时,假设我传递了它的位置 - 所以用户可以输入一个新的,以及
IEnumerable<Location> locations
,因此它会列出新位置表单下方的所有现有位置。当我这样做时,我得到了验证摘要,但是没有显示每个字段的消息,也没有css将*和突出显示应用于每个不正确的字段。
我正在使用Linq to SQL,因此我将所有验证添加为部分类,因此在这种情况下,所有验证都来自部分类位置,据我所知,将使用linq to的设计器文件进行编译sql创建并添加我的业务验证。这个问题是否发生,因为我没有传递视图MyApp.Models.Location,而是传递它MyApp.Models.MyCustomViewModel?如果是这样,那么我最好的方法是什么才能使用一个表单来创建和列表?
答案 0 :(得分:0)
我能够正常工作 - 我在POST方法中更改了返回值以返回
return View(new MyCustomViewModel(location) { });
而不是
return RedirectToAction(new MyCustomViewModel(location) { });
希望如果有人遇到我遇到的同样问题,这会有所帮助 - 这是我自己对View的工作方式的误解,而不是RedirectToAction。