asp.net – MVC 3,(razor)加载部分与验证

嗨,我正在使用MVC 3(剃须刀)来制作一个ajax向导.我注意到,当您将部分视图返回到UpdateTargetId时,可能会将视图插入,但不会添加/应用Unobtrusive JavaScript.如果我将部分视图加载到ajax块外,例如
@Html.Partial("Company")

它工作完美,所以我没有丢失任何标准的库和
我的网络配置是好的.

所以在这一刻,我很少受伤.

我的看法如下:

@using(Ajax.BeginForm("Step","Origination",new AjaxOptions { UpdateTargetId = "stepArea" })){

    <div id="stepArea"></div>
   <input id="btnSubmit" type="submit" value="submit" />
}

控制器:

public ActionResult Step(FormCollection formCollection)
{
    if (this.Request.IsAjaxRequest())
    {
        switch ((TempData["step"] as string))
        {
            case "Company":
                TempData["step"] = "Person";
                return PartialView("Company");

            case "Person":
                TempData["step"] = "Pay";
                return PartialView("Person");

            case "Settlement":
                return PartialView("Pay");

            default:
                TempData["step"] = "Company";
                return PartialView("UserType");
        }
    }
    return View();
}

我的问题是从部分视图的验证可以从部分刷新中实现/实现?

解决方法

阅读几个论坛,做一些实验.
最后一块拼图,导致验证在返回部分视图后工作. jquery.validate.unobtrusive not working with dynamic injected elements
<script type="text/javascript">

    function validateAjaxForm() {
        $("form").removeData("validator");
        $("form").removeData("unobtrusiveValidation");
        $.validator.unobtrusive.parse("form");
        return $('#form').valid();
    }
</script>


 @{ Html.EnableClientValidation(true); } 
@using (Ajax.BeginForm("Step",new AjaxOptions { UpdateTargetId = "stepArea",OnBegin = "return validateAjaxForm();" },new { id = "form" }))
{
    <div id="stepArea"></div>
    <input id="btnSubmit" type="submit" value="submit" />
}

工作完美.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....