MVC 3 客户端对带有数据注释的集合进行验证 - 不起作用

2023-11-29

我正在尝试让客户端验证在我的模型上工作——到目前为止它还不起作用。

我的模型有一个集合属性:

public class NewsEventsModel
{
    public List<NewsItemDetails> newsItems { get; set; }
    public int pageNumber { get; set; }
    public int totalPages { get; set; }
    public bool canManageNews { get; set; }
    public long userID { get; set; }
}

NewsItemDetails 的定义如下:

public class NewsItemDetails
{
    public long itemID { get; set; }

    public long postedByID { get; set; }

    public DateTime datePosted { get; set; }

    [Required(ErrorMessage = "Please enter news or event text")]
    [StringLength(100)]
    [RegularExpression(RegExpressions.freeTextRestrict)]
    public string newsBody { get; set; }

    [StringLength(50)]
    [RegularExpression(RegExpressions.freeTextRestrict)]
    public string newsTitle { get; set; }
}

我将 NewsEventsModel 发送到视图。然后在我看来我包括

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>  

然后在我的视图代码中

   for (int j = 0; j < Model.newsItems.Count(); j++)
   {

      /// bunch of stuff
      // then:
     <div class="editblock">
       @Html.TextAreaFor(model => model.newsItems[j].newsBody, new { @class = "formtextem", id = editBoxID, rows = "10", style = "width: 54em" })
       @Html.ValidationMessageFor(model => model.newsItems[j].newsBody)
     </div> 
   } 

但是,当我删除文本区域中的所有文本并单击“保存”时,不会出现“必需”消息。当我违反任何其他规则时,也不会出现任何消​​息。

但是,如果我将验证注释放在顶级 NewsEventsModel 中的属性之一上,然后将其作为文本框包含在视图中,则客户端验证确实有效。它只是不适用于较低级别的 NewsItemDetails 类。

我在这里缺少什么?


尝试在您的视图中使用编辑器模板:

@Html.EditorFor(x => x.newsItems)

和里面~/Views/Shared/EditorTemplates/NewsItemDetails.cshtml:

@model AppName.Models.NewsItemDetails

// bunch of stuff
// then:
<div class="editblock">
    @Html.TextAreaFor(model => model.newsBody, new { @class = "formtextem", id = editBoxID, rows = "10", style = "width: 54em" })
    @Html.ValidationMessageFor(model => model.newsBody)
</div> 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MVC 3 客户端对带有数据注释的集合进行验证 - 不起作用 的相关文章

  • 使用 RedirectToAction 时如何设置协议?

    我的目标操作需要 https 我已经有一个过滤器 如果请求通过 http 传入 它会重定向到 https 但我更愿意从一开始就通过 https 发送请求 EDIT Darin 给出了一个答案 现在更新为其他内容 他问为什么我无论如何都通过
  • 这是使用 MvcSiteMapProvider 设置 2 级导航(两个菜单,每个级别一个)并突出显示(包括面包屑)的好方法吗?

    我只是深入研究 MVC SiteMapProvider 并摆弄它 所以这个问题更多的是关于设计而不是无法实现我想要的 我设置了一个使用 MvcSiteMapProvider 3 3 4 的简单 MVC4 Web 应用程序 我想用它实现的是二
  • jquery:焦点到 div 不起作用

    ajax功能结束后 在成功消息中 我关注特定的 div 但这不起作用 我的代码在这里 j ajax url type POST data action press release page 0 do task do task id id m
  • System.Web.Caching.Cache 在模型中抛出 null 异常

    也许这个问题应该很简单 但事实并非如此 我读过了在 ASP NET 中使用 System Web Caching Cache 类时出现问题 https stackoverflow com questions 531014 problem u
  • wp_unregister 和 wp_enqueue

    有人建议我使用 wp unregister 和 wp enqueue 将 wordpress jquery 库替换为 google 托管的库 因为 wordpress 有一些问题 然而 当我尝试将这些插入我的 WordPress 网站时 它
  • jQuery:如何捕获文本框中的 TAB 按键

    我想捕获 TAB 按键 取消默认操作并调用我自己的 javascript 函数 Edit 由于您的元素是动态插入的 因此您必须使用委托的on http api jquery com on 如您的示例中所示 但您应该将其绑定到 keydown
  • 文件上传后如何隐藏上传按钮?

    我使用 blueimp 和 jquery UI 进行文件上传 我想在上传文件后隐藏此按钮 并在照片被删除时再次显示它 我该怎么做呢 这是我的 HTML
  • 在 WCF 服务上启用 CORS。获取 HTTP 405:不允许的方法

    我正在尝试在 WCF 服务上启用 CORS 当我尝试从客户端发送请求时 该请求是使用OPTIONS动词 我总是得到一个HTTP 405 Method not allowed error 如果我尝试使用 Fiddler 并使用以下命令创建相同
  • asp.net mvc 文件流结果

    问题的第一部分 我在数据库中有信息 我想从数据库获取它并将其另存为 txt文件给客户端 我已经用常规的 asp net 完成了它 但在mvc中还没有 我的信息不是图像 这些关于人民的信息 我看着这个网站 http www mikesdotn
  • Spring @Validated 在服务层

    Hej 我想使用 Validated group Foo class 在执行方法之前验证参数的注释 如下所示 public void doFoo Foo Validated groups Foo class foo 当我将此方法放入 Spr
  • 如何使用 ASP.NET MVC 编辑多选列表?

    我想编辑一个如下所示的对象 我希望用 UsersGrossList 中的一个或多个用户填充 UsersSelectedList 使用 mvc 中的标准编辑视图 我只得到映射的字符串和布尔值 下面未显示 我在 google 上找到的许多示例都
  • 验证属性被触发两次

    在我的 MVC3 应用程序中 我有模型 未删除重要属性 public class AccountViewModel StringLength 65 public string Property1 get set StringLength 6
  • jQuery 验证规则和消息 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我在设置 jQuery 验证的规则和
  • jQuery 选择器:为什么 $("#id").find("p") 比 $("#id p") 更快

    该页面的作者 http 24ways org 2011 your jquery now with less suck http 24ways org 2011 your jquery now with less suck断言 jQuery
  • 使用 jquery 将字符串数组转换为整数

    我正在尝试将 jquery 中的字符串数组转换为整数数组 这是我的尝试 var cdata data values split each cdata function i l l parseInt l 我认为在这种情况下你不需要使用 Jqu
  • jQuery 选择下一个

    我有一个简单的div布局html 有一个函数 当鼠标悬停在className为 personal icon email 的div上时 我将调用JS函数并显示className为 img info mask 的隐藏div div class
  • Jquery:选择菜单以显示和隐藏某些div元素

    我正在创建一个选择菜单 根据所选选项显示和隐藏某些 div 像这样的东西
  • Fancybox 画廊组

    我正在使用 fancyboxhttp fancyapps com fancybox http fancyapps com fancybox 我的问题是 我可以将不同的资源组合在一起吗 我的意思是同一画廊 或 组 中带有内嵌或视频的图像 如果
  • 我可以使用 jQuery 动态创建文件(及其内容)吗? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 这是我的 HTML 代码 ul li
  • Bootstrap 3 / 显示模式不适用于 javascript 方式

    我用Modal http getbootstrap com javascript modalsBootstrap 3 0 的功能 我有这个代码 a href myNestedContent Open the modal containing

随机推荐