【发布时间】:2012-08-31 09:28:57
【问题描述】:
我是 MVC 新手,所以请帮助我解决我面临的一个简单问题。我有一个类如下
public class FeedbackViewModel
{
[Required(ErrorMessage="Please enter feedback summary")]
public string strSummary { get; set; }
[Required(ErrorMessage = "Please enter feedback details")]
public string strDetail { get; set; }
}
然后这个FeedbackViewModel在其他视图模型中用作
public class HomeIndexViewModel
{
public SearchViewModel SearchViewModels { get; set; }
public FeedbackViewModel FeedBackModel { get; set; }
}
我的问题出在控制器中,当我执行 ModelState.IsValid(在控制器中传递给操作的模型是 HomeIndexViewModel)时,无论我是否在 FeedbackViewModel 模型的字段中输入了任何值,它总是正确的。我需要在此操作中验证 FeedbackViewModel 模型。
首先是否可能,然后如何。或者如果不可能,那么任何解决方法都在那里。请帮助我卡住了,我希望我的问题很清楚
【问题讨论】:
-
不要在视图模型中使用视图模型。为每个视图使用单独的模型。 (或者如果对您的应用有意义,则共享具有多个视图的单个模型)。为了验证输入,在可能的情况下,最好将复杂对象排除在视图模型之外。数据注释不会深入到复杂的属性中。
-
你能显示控制器动作的代码吗?
-
感谢您的回复。我想我会像四十二所说的那样把观点分开,让事情变得简单。
标签: c# asp.net-mvc validation