3

我有以下数据模型

public class User
{
        [Required(ErrorMessage = "First name required!")]
        public string FirstName { get; set; }

        [Required(ErrorMessage = "Last name required!")]
        public string LastName { get; set; }
}

我有以下名为“UserForm”的视图,它使用上述模型

@model User
@using (Html.BeginForm("myAction", "MyController"))
{
@Html.TextBoxFor(model => model.FirstName)
@Html.TextBoxFor(model => model.LastName)
@Html.ValidationSummary()
<input type="submit" value="Save" />
}

我已经测试了上面的代码并且不显眼的验证和表单帖子可以正常工作并且没有任何问题。但是,如果我将上述视图作为部分视图包含在如下所示的第二个视图中,则客户端不显眼的验证将停止工作。

<div id="myPartialView">
<!-- Include form as partial view -->
@{Html.RenderAction("myAction", "MyController");}
</div>

我尝试使用以下 javascript 行显式重新加载不显眼的验证

jQuery.validator.unobtrusive.parse('#myPartialView');

现在验证正在运行,但我无法提交表单。我使用了提琴手,我可以看到点击提交按钮不会触发任何活动。关于我可能做错了什么的任何想法?

4

1 回答 1

2

对于任何偶然发现这个问题的人,我现在已经解决了这个问题。我的表单嵌入在 Jquery Modal 框中,并且我的 html 标记无效。这并没有导致模式停止工作,而是阻止了我的表单提交。(我仍然不确定为什么)。我使用 w3c 的优秀 html 验证器发现了这个错误

http://validator.w3.org

需要注意的是我还需要

jQuery.validator.unobtrusive.parse('#myPartialView');

让客户端验证适用于动态内容。这是一个众所周知的问题,在上面@Mate 发布的链接中进行了更详细的讨论

于 2012-12-08T18:20:14.227 回答