我有一个问题,基本上我有一个包含很多字段的表单,并且它们都有一个必需的属性集,所以当你把它留空并点击确定时,你会得到客户端验证,它变成红色.它对于管理EditorTemplate的一切都很好.
我的模型如下:
public class MyModel { [required] public string Username{get;set;} public Location Loc{get;set;} } public class Location { [required] public string Loc1{get;set;} [required] public string Loc2{get;set;} }
我在主视图中有以下内容:
@Html.EditorFor(m => m.Location,Model.Location)
这是我的EditorTemplate:
<tr> <td class="editor-label"> @Html.LabelFor(m => m.Loc1) </td> <td class="editor-field"> @Html.DropDownListFor(m => m.Loc1,Model.Locs==null?Enumerable.Empty<SelectListItem>():Model.Locs,"---select--",new { @class = "location-ddl" }) </td> <td> @Html.ValidationMessageFor(m => m.Loc1) </td> </tr>
…
经过调查后,我注意到它产生的HTML如下:
<select name="Location.Loc1" id="Location_Loc1">
正如您所看到的,它缺少客户端验证的一些属性,通常它应该是这样的:
<select name="Loc1" id="Loc1" data-val-required="The Loc1field is required." data-val="true">
我的问题是,为什么编辑器模板不能在客户端生成验证的正确html输出,以及如何解决它?
只是为了一个注释它确实在服务器端工作,所以如果这些选择在服务器端是空的,它将被标记为未填写并发回.但是,我仍然想了解编辑器的行为以及修复它的方法.
谢谢
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。