c# – MVC3编辑器模板不生成客户端验证

c# – MVC3编辑器模板不生成客户端验证,第1张

概述我有一个问题,基本上我有一个包含很多字段的表单,并且它们都有一个必需的属性集,所以当你把它留空并点击确定时,你会得到客户端验证,它变成红色.它对于管理EditorTemplate的一切都很好. 我的模型如下: public class MyModel{ [Required] public string Username{get;set;} public Location Loc{g 我有一个问题,基本上我有一个包含很多字段的表单,并且它们都有一个必需的属性集,所以当你把它留空并点击确定时,你会得到客户端验证,它变成红色.它对于管理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 >        @HTML.LabelFor(m => m.Loc1)    </td>    <td >        @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输出,以及如何解决它?

只是为了一个注释它确实在服务器端工作,所以如果这些选择在服务器端是空的,它将被标记为未填写并发回.但是,我仍然想了解编辑器的行为以及修复它的方法.

谢谢

解决方法 您可以使用HTML.GetUnobtrusiveValIDationAttributes(“Location.Loc1”)来获取验证属性.
参见文档 here. 总结

以上是内存溢出为你收集整理的c# – MVC3编辑器模板不生成客户端验证全部内容,希望文章能够帮你解决c# – MVC3编辑器模板不生成客户端验证所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1229958.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存