在jquery对话框中使用ajax请求时,我正在尝试使客户端验证工作。
这意味着我没有提交按钮,我不回发。我不明白为什么我不能让它开始工作。
我发了这个问题。我一直在玩它,可以得出这样的结论:无论出于什么原因,我都需要用我的部分视图加载jquery.validate.unobtrusive。这对我来说毫无意义。
这是个虫子吗?
编辑
我也去把错误贴在asp.net codeplex上
这样做的另一个好处是,如果您愿意,只需下载我的小示例应用程序并试用它即可。
或者您可以按照以下步骤操作
ViewUserControl1 (部分视图)-粘贴在主视图文件夹中
@model MvcApplication1.Models.TestModel
@Html.BeginForm(“测试”、“帐户”、FormMethod.Post、新的{@id="testFrm"})) { @Html.ValidationSummary() @Html.TextBoxFor(x => x.Name) }
索引(应用以下内容替换)
@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请求。
家庭控制器
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 //视图模型
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; }
}
}
web.config
<appSettings>
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>现在运行应用程序。点击“删除所有项目”和“提交查询”。
什么都不应该发生。没有为我提供任何验证。
现在,将这一行添加到部分视图(ViewUserControl1)
<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" />
}现在再试一次。
现在它应该会产生验证错误。
发布于 2011-02-28 22:15:57
我想我在附近找到了一些工作。尽管我认为应该为一些基本的事情做一种自动的方法,比如使验证工作具有部分视图。
周旋
发布于 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
https://stackoverflow.com/questions/5147954
复制相似问题