相关疑难解决方法(0)

ASP.NET MVC 3:当BeginForm在布局上时生成不显眼的验证

我刚刚意识到,当我在布局页面上放置一个表单标签,围绕RenderBody部分时,不会生成不显眼的验证.像这样的东西:

@using (Html.BeginForm())
{
    <input type="submit" value="save" />

    <div>
        @RenderBody()
    </div>
}
Run Code Online (Sandbox Code Playgroud)

您可能已经猜到我想在我的内容上生成按钮.这是不正确的不引人注意的行为吗?

顺便说一句,如果我将表单放在特定页面中,一切都像魅力一样:data-val*属性生成良好.

我很感激你的宝贵帮助.

最好的祝福

罗德里戈

unobtrusive-validation asp.net-mvc-3

7
推荐指数
2
解决办法
5469
查看次数

PartialView和不显眼的客户端验证无法正常工作

我目前正在使用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)

validation asp.net-mvc jquery

6
推荐指数
1
解决办法
4868
查看次数

Jquery MVC 4客户端验证无效

我正在尝试在一个简单的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)

asp.net-mvc jquery

1
推荐指数
1
解决办法
3万
查看次数