首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery.validate.unobtrusive被窃听了吗?

jquery.validate.unobtrusive被窃听了吗?
EN

Stack Overflow用户
提问于 2011-02-28 21:48:15
回答 2查看 1.3K关注 0票数 0

在jquery对话框中使用ajax请求时,我正在尝试使客户端验证工作。

这意味着我没有提交按钮,我不回发。我不明白为什么我不能让它开始工作。

我发了这个问题。我一直在玩它,可以得出这样的结论:无论出于什么原因,我都需要用我的部分视图加载jquery.validate.unobtrusive。这对我来说毫无意义。

这是个虫子吗?

编辑

我也去把错误贴在asp.net codeplex

这样做的另一个好处是,如果您愿意,只需下载我的小示例应用程序并试用它即可。

或者您可以按照以下步骤操作

  1. 制作一个非空的asp.net mvc 3应用程序(我正在使用剃须刀) _Layout.cshtml @ViewBag.Title <script type="text/javascript"> $(function () { $.get('/home/dialog', null, function (r) { var a = $("#dialog").dialog({ resizable: false, height: 500, modal: true, buttons: { "Delete all items": function () { $('#testFrm').validate().form(); }, Cancel: function () { $(this).dialog("close"); } } }).html(r); }); $('#testFrm').live('submit',function (e) { e.preventDefault(); }); }); </script> </head> <body> <div class="page"> <div id="header"> <div id="title"> <h1>My MVC Application</h1> </div> <div id="logindisplay"> @Html.Partial("\_LogOnPartial") </div> <div id="menucontainer"> <ul id="menu"> <li>@Html.ActionLink("Home", "Index", "Home")</li> <li>@Html.ActionLink("About", "About", "Home")</li> </ul> </div> </div> <div id="main"> @RenderBody() <div id="footer"> </div> </div> </div> </body> </html>

ViewUserControl1 (部分视图)-粘贴在主视图文件夹中

@model MvcApplication1.Models.TestModel

@Html.BeginForm(“测试”、“帐户”、FormMethod.Post、新的{@id="testFrm"})) { @Html.ValidationSummary() @Html.TextBoxFor(x => x.Name) }

索引(应用以下内容替换)

代码语言:javascript
复制
@model MvcApplication1.Models.TestModel


@{
    ViewBag.Title = "Home Page";
}

<h2>@ViewBag.Message</h2>
<p>
    To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
</p>

@DateTime.Now

<div id="dialog">
</div>

注意对话框id,这将存储部分视图的ajax请求。

家庭控制器

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcApplication1.Controllers
{
    public class HomeController : Controller
    {

        public ActionResult test()
        {
            return null;
        }

        public PartialViewResult Dialog()
        {
            return PartialView("ViewUserControl1");
        }


        public ActionResult Index()
        {
            ViewBag.Message = "Welcome to ASP.NET MVC!";

            return View();
        }




        public ActionResult About()
        {
            return View();
        }
    }
}

TestModel.cs //视图模型

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.ComponentModel.DataAnnotations;

namespace MvcApplication1.Models
{
    public class TestModel
    {
        [Required()]
        public string Name { get; set; }
    }
}

代码语言:javascript
复制
 web.config

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

现在运行应用程序。点击“删除所有项目”和“提交查询”。

什么都不应该发生。没有为我提供任何验证。

现在,将这一行添加到部分视图(ViewUserControl1)

代码语言:javascript
复制
<script src="../../Scripts/jquery.validate.unobtrusive.js" type="text/javascript"></script>


@model MvcApplication1.Models.TestModel

@using (Html.BeginForm("test","Account",FormMethod.Post,new {@id="testFrm"}))
{
     @Html.ValidationSummary()
     @Html.TextBoxFor(x => x.Name)
     <input type="submit" />
}

现在再试一次。

现在它应该会产生验证错误。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-28 22:15:57

我想我在附近找到了一些工作。尽管我认为应该为一些基本的事情做一种自动的方法,比如使验证工作具有部分视图。

周旋

票数 0
EN

Stack Overflow用户

发布于 2011-03-01 06:00:31

这不是窃听器。使用Ajax加载PartialView时,必须解析正在加载的新元素中包含的不引人注目的验证属性。

请参阅http://forums.asp.net/t/1651961.aspx/1?Unobtrusive+validation+not+working+on+form+loaded+by+Ajax

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

https://stackoverflow.com/questions/5147954

复制
相关文章

相似问题

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