【发布时间】:2011-04-19 07:38:45
【问题描述】:
我正在尝试实现我们在此处看到的内容:
http://weblogs.asp.net/cibrax/archive/2008/08/01/combining-jquery-validation-with-asp-net-mvc.aspx
我遇到的问题是它不使用远程验证器。
<form action="<%=Url.Action("Register", "Home")%>" method="post" id="form-sign-up">
就我而言,每次我点击提交时,它都会发布到注册操作中——我似乎从未点击过 Json 验证器方法。事实上,我下载了示例并且远程帖子对我不起作用。远程部分是否适用于其他人的示例?
有谁知道如何让他们工作或有更好的例子?
基本上我所拥有的是一个模态弹出编辑表单。我想在发布到保存(或在本例中为Register)方法之前进行所有验证。
我只需要检查它是否是必需的,远程验证器将检查它是否重复。在我的示例中,我错过了验证器并最终使用了 save 方法。显然,如果该字段已填写且不重复,我只想保存。
编辑 0:
我正在使用 MVC 2
<form action="/Region/Save" method="post" id="Form-AddRegion">
<div class="editor-label">
<%: Html.Label("Region:") %>
<%: Html.TextBoxFor(model => model.Region, new { @class = "edit required remote"}) %>
</div>
<p>
<input type="submit" value="Save" />
<input type="button" onClick="window.parent.CloseWindow();" value="Cancel" />
</p>
</form>
public ActionResult ValidateRegion(string name)
{
if (!something)
return Json(true, JsonRequestBehavior.AllowGet);
return Json(false, JsonRequestBehavior.AllowGet);
}
<script type="text/javascript">
$(document).ready(function () {
alert('jQuery is referenced properly');
$("#Form-AddRegion").validate({
rules:
{
//rules each for specified input-id
Region:
{
required: true,
remote: '<%=Url.Action("ValidateRegion","Region") %>'
}
},
messages:
{
Region:
{
required: "Please provide a Region",
remote: jQuery.format("{0} is already in use")
}
}
});
});
</script>
所以问题是在提交时,我总是在验证器ValidateRegion之前发布到保存方法/Region/Save!我错过了global.asax.cs 中的路线吗?
我需要知道 javascript 代码何时发布/进入验证器方法?我会假设提交,但它似乎永远不会被调用!?
当人们不阅读您的问题并将您指向主要文档参考时,这确实很烦人,有趣的是,我已经去过那里了。
【问题讨论】:
-
你用的是什么版本的mvc?请提供少量代码
标签: c# jquery asp.net-mvc validation