C# 添加不带ViewModelClass.ModelClass注释的ModelStateError
我为我的模型创建了一个特殊的viewmodel类,用于将要计算的数据添加到模型中,比如一些int for timeC# 添加不带ViewModelClass.ModelClass注释的ModelStateError,c#,asp.net-mvc,validation,modelstate,C#,Asp.net Mvc,Validation,Modelstate,我为我的模型创建了一个特殊的viewmodel类,用于将要计算的数据添加到模型中,比如一些int for time public class SessionView { public Session Session { get; set; } public int StartHour { get; set; } public int StartMin { get; set; } public int EndHour { get; set; } public
public class SessionView
{
public Session Session { get; set; }
public int StartHour { get; set; }
public int StartMin { get; set; }
public int EndHour { get; set; }
public int EndMin { get; set; }
}
当我使用自定义验证器进行验证时,我将错误添加到ModelState,而不使用视图所需的“.Session”来找到在回发时添加错误的正确位置
如何才能显示错误,将其添加为
ModelState.addmodeleror(“Name”,“error”)
,而不是ModelState.addmodeleror(“Session.Name”,“error”)
?恐怕这是不可能的。如果在视图中有以下字段:
@Html.EditorFor(x => x.Session.Name)
@Html.ValidationMessageFor(x => x.Session.Name)
然后它对应的ModelState
键是Session.Name
,如果您想将其与错误消息关联,则应该使用该键
但为了避免这些问题,您可以使用数据注释或编写自定义验证属性,然后用这些属性装饰相应的属性。这样,您就不必担心键了,因为如果您使用集合-会话[3]。Name
,情况可能会变得更糟
作为数据注释的替代方法,您可以签出。对不起,您的问题一点也不清楚。你能澄清一下吗?