我刚刚意识到,当我在布局页面上放置一个表单标签,围绕RenderBody部分时,不会生成不显眼的验证.像这样的东西:
@using (Html.BeginForm())
{
<input type="submit" value="save" />
<div>
@RenderBody()
</div>
}
Run Code Online (Sandbox Code Playgroud)
您可能已经猜到我想在我的内容上生成按钮.这是不正确的不引人注意的行为吗?
顺便说一句,如果我将表单放在特定页面中,一切都像魅力一样:data-val*属性生成良好.
我很感激你的宝贵帮助.
最好的祝福
罗德里戈
我目前正在使用ASP.NET MVC3 RC,而我正在使用Brad Wilson在其博客上描述的不引人注目的JQuery验证.它工作得很好但是当我将表单(在Ajax中)发送到服务器时,如果模型状态无效,我会进行一些服务器端验证并返回相同的行(包含在局部视图中).2个问题:
第一:当我return PartialView在我的动作中执行时,所有不显眼的属性都不会被渲染.我发现了一种"非优雅"的方式,但是当我这样做时,客户端验证就会被破坏.从我的动作返回后,即使我调用jQuery.validator.unobtrusive.parse()了我的更新行,$("form").valid()即使不是这样,也总是返回true.
第二:我希望我的渲染视图在服务器上呈现为字符串,因此我可以将它发送回JsonResult(例如:)myJSonResult.html=RenderPartialToString("partialName",model).
有参考,有我的观点(editInvitation):
<td>
<%= Html.HiddenFor(x=>x.ID,new{id="ID"}) %>
<%= Html.HiddenFor(x=>x.GroupID,new{id="GroupID"}) %>
<%: Html.TextBoxFor(x => x.Name, new { id = "Name" })%><%:Html.ValidationMessageFor(x=>x.Name) %>
</td>
<td>
<%: Html.TextBoxFor(x => x.Email, new { id = "Email" })%> <%:Html.ValidationMessageFor(x=>x.Email) %>
</td>
<td>
<%: Model.Status.ToFriendlyName()%>
</td>
<td>
<%= InvitationsViewModel.RenderActions(Model, Html, InvitationsViewModel.CreateRowID(Model.ID))%>
</td>
Run Code Online (Sandbox Code Playgroud)
我的控制器动作:
if (TryUpdateModel(invitation))
{
validModel = true;
//Other stuff
}
if (Request.IsAjaxRequest())
{
//TODO : I return a partial …Run Code Online (Sandbox Code Playgroud) 我正在尝试在一个简单的MVC 4应用程序上使用jQuery验证插件 - 我在MVC 3中做的没有任何问题,但我无法让它工作.
我希望验证在以下情况下触发:
1 - 我的控制失去焦点.
2-表格提交.
关于我错过的任何想法将不胜感激!
_Layout.cshtml中的脚本引用
<!-- language-all: lang-html -->
<head>
<meta charset="utf-8" />
<title>@ViewBag.Title - AWC Web Console</title>
<link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
<meta name="viewport" content="width=device-width" />
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
<script src="@Url.Content("~/Scripts/jquery-1.7.1.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
</head>
Run Code Online (Sandbox Code Playgroud)
在Doc ready函数中应用验证JS的Index.cshtml标记
<script type="text/javascript">
$(document).ready(function () {
alert("doc ready");
// JQuery client validation
$("#prodIdFilterForm").validate(
{
onsubmit: true,
rules: {
productId_str: {required: true, minlength: 10, number:true }
},
messages: { productId_str: "product Id must …Run Code Online (Sandbox Code Playgroud)