小编Rob*_*o D的帖子

MVC 3 Razor @ Html.ValidationMessage不能通过jquery.load()部分加载

我在这里放了一个小例子来复制问题.我有一个强类型的局部视图_Name.cshtml:

@model ValidationInPartial.ViewModels.MyViewModel

<h2>@ViewBag.Message</h2>

    <fieldset>
        <legend>Name</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.MyName)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.MyName)
            @Html.ValidationMessageFor(model => model.MyName)
        </div>

        <a href="#" id="reload">Reload Name</a>

        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>

<script type="text/javascript">
    $(document).ready(function () {
        $("#reload").click(function () {
            $("#divName").load("Home/NameReload");
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

最初加载并显示在主Index.cshtml中

<div id="divForm">
    @using (Html.BeginForm()) {

        <div id="divName">
            @Html.Partial("_Name")
        </div>
    }
</div>
Run Code Online (Sandbox Code Playgroud)

MyName字段是必需的,验证是通过MyViewModel中的Required属性实现的

namespace ValidationInPartial.ViewModels
{
    public class MyViewModel
    {
        [Required(ErrorMessage = "Please enter a Name.")]
        public string MyName { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

第一次加载页面后,如果单击"创建"按钮,则该字段将清空验证消息"请输入名称".显示在田野旁边,田地本身变成粉红色,这是预期的行为.现在通过单击"重新加载名称"链接,进行ajax调用(jquery.load(...)),重新加载部分,这里是控制器代码: …

validation csh partial razor asp.net-mvc-3

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

标签 统计

asp.net-mvc-3 ×1

csh ×1

partial ×1

razor ×1

validation ×1