首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery客户端验证不适用于MVC3 MvcContrib.FluentHtml

jQuery客户端验证不适用于MVC3 MvcContrib.FluentHtml
EN

Stack Overflow用户
提问于 2011-02-15 01:49:35
回答 2查看 6.4K关注 0票数 1

使用MVC3RTM和MvcContrib/FluentHtml版本3.0.51.0,我不能让jQuery客户端验证工作。服务器端验证工作正常,并返回正确的验证摘要,等等。但窗体post总是试图在本应停止在客户端的服务器端post控制器操作中显示验证错误。

你知道我错过了什么吗?最新版本的MvcContrib/FluentHtml会不会与jQuery客户端验证不兼容?

下面是我的代码:

Web.config具有:

代码语言:javascript
复制
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>

Site.Master页面包含:

代码语言:javascript
复制
<script src="<%= Url.Content("~/Assets/JavaScript/jquery-1.4.4.min.js")%>" type="text/javascript"></script>
   <script src="<%= Url.Content("~/Assets/JavaScript/jquery-ui-1.8.7.min.js")%>" type="text/javascript"></script>
   <script src="<%= Url.Content("~/Assets/JavaScript/jquery.validate.min.js")%>" type="text/javascript"></script>
   <script src="<%= Url.Content("~/Assets/JavaScript/jquery.validate.unobtrusive.min.js")%>" type="text/javascript"></script>

视图页面继承自MvcContrib的ModelViewPage:视图页面如下:

代码语言:javascript
复制
<%@ 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>

下面是控制器的post操作:

代码语言:javascript
复制
[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)
            {

以下是包含必填字段的entity对象:

代码语言:javascript
复制
[Serializable]
public class ContactInformationEO
{
    public virtual Int64 AddressId { get; set; }

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

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-10 07:17:32

刚刚遇到了这个问题,看起来像是Scott Kirkland has a solution

票数 1
EN

Stack Overflow用户

发布于 2011-02-17 00:56:22

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

我已经用谷歌搜索了几分钟,看起来MVC3.0.51.0版并不支持任何等价于EditorFor的MvcContrib客户端验证,所以我只能把它去掉,并使用原生的MVC控件。

你可以在这里看到我的方法的完整解决方案的一篇文章:automatically-validate-and-format-data-with-asp-net-mvc-and-jquery

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4995459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档