Asp.net mvc 3 jQuery客户端验证不适用于MVC 3 MvcContrib.FluentHtml

Asp.net mvc 3 jQuery客户端验证不适用于MVC 3 MvcContrib.FluentHtml,asp.net-mvc-3,validation,client-side,mvccontrib,Asp.net Mvc 3,Validation,Client Side,Mvccontrib,使用MVC3RTM和MvcContrib/FluentHtml版本3.0.51.0,我无法让jQuery客户端验证工作。服务器端验证工作正常,并返回显示正确的验证摘要等。但是表单post总是在服务器端post控制器操作本应在客户端停止以显示验证错误时尝试点击该操作 知道我遗漏了什么吗?MvcContrib/FluentHtml的最新版本是否与jQuery客户端验证不兼容 这是我的密码: Web.config有: <add key="ClientValidationEnabled" valu

使用MVC3RTM和MvcContrib/FluentHtml版本3.0.51.0,我无法让jQuery客户端验证工作。服务器端验证工作正常,并返回显示正确的验证摘要等。但是表单post总是在服务器端post控制器操作本应在客户端停止以显示验证错误时尝试点击该操作

知道我遗漏了什么吗?MvcContrib/FluentHtml的最新版本是否与jQuery客户端验证不兼容

这是我的密码:

Web.config有:

<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
以下是带有必填字段的实体对象:

[Serializable]
public class ContactInformationEO
{
    public virtual Int64 AddressId { get; set; }

    [Required]
    public virtual string Zipcode { get; set; }

我想出来了,肯定是MvcContrib搞砸了。我最初认为MvcContrib不是一个因素,因为当我从MvcContrib的ModelViewPage更改为Mvc.ViewPage时,我将“this.TextBox”切换为“Html.TextBox”,它仍然不起作用。然而,我刚刚发现我需要将控件切换到“Html.EditorFor”而不是“Html.TextBox”

我在谷歌上搜索了几分钟,它看起来不像MvcContrib版本3.0.51.0支持jquery客户端验证,具有EditorFor的任何等效功能,因此我只能将其删除并使用本机MVC控件


你可以在这里看到一篇关于我的方法的完整解决方案的文章:

刚刚遇到了这个问题,看起来像是。

很久以前我就从我的解决方案中删除了MvcContrib,但是谢谢你发布这篇文章。我将把它标记为已解决。如果您想在不依赖MvcContrib的情况下看到一篇包含我的方法的完整解决方案的文章,您可以在这里看到:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" 
    Inherits="ModelViewPage<MaintainReferralAgencyDetailVM>" %>
<%@ Import Namespace="OASIS3G.Controllers" %>
<%@ Import Namespace="OASIS3G.ViewModels" %>
<%@ Import Namespace="JCDCHelper.Extension"%>
<%@ Import Namespace="MvcContrib.FluentHtml" %>
<%@ Import Namespace="System.Web.Mvc" %>
<%@ Import Namespace="System.Web.Mvc.Html" %>

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
    <% using (Html.BeginForm()) %>
    <% { %>
        <h1>Referral Agency Detail</h1>
        <%= Html.ValidationSummary(false) %>
        <table class="NoBorder">
            <tr>
                <td class="NoBorder SubmitFormLeftColumn"><span class="required">* </span>Zip Code:</td>
                <td class="NoBorder"><%= this.TextBox(x => x.ReferralAgency.ContactInformation.Zipcode) %> Example: 99999 or 999990000
                   <%= Html.ValidationMessageFor(x=>x.ReferralAgency.ContactInformation.Zipcode) %>
                </td>
            </tr>
        </table>
        <input type="submit" value="Submit" />
    <% } %>
</asp:Content>
[HttpPost]
        public ActionResult MaintainReferralAgencyDetail(MaintainReferralAgencyDetailVM userInputs)
        {
// I shouldn't reach this when I submit the form with a blank Zipcode, but I do:
            if (ModelState.IsValid)
            {
[Serializable]
public class ContactInformationEO
{
    public virtual Int64 AddressId { get; set; }

    [Required]
    public virtual string Zipcode { get; set; }