微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – mvc PartialView with Dialog Partial View显示html

我想要做的是打开一个 jquery对话框.
发生的事情是,当我尝试打开PartialView时,我看到以下html文本与表单的呈现:

<form action="/plt/FileUpload" method="post"><input data-val="true" data-val-number="The field PlNum must be a number." data-val-required="The PlNum field is required." id="PlNum" name="PlNum" type="hidden" value="36028" />     <div id="errMsg" >

     </div>
     <p>File upload for Pl# 36028</p>
     <input type="file" name="file" />
     <input type="submit" value="OK" />
     </form>

这是控制器动作:

public ActionResult FileUpload(int id)
       {
         var model = new FileUpload { PlNum = id };
         return PartialView(model);
       }

这是PartialView的视图:

@model Ph.Domain.Lb.Models.FileUpload

    <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
@using (Html.BeginForm("FileUpload","plts",FormMethod.Post,null))
    {

      @Html.HiddenFor(a => a.PlNum)

     <div id="errMsg" >
     @if (TempData["ErrMessage"] != null)
     {
       @TempData["ErrMessage"]
     }
     </div>

    <p>File upload for Pl# @Model.PlNum</p>
    <input type="file" name="file" />
    <input type="submit" value="OK" />
   }

这是我的ajax调用的样子:

var url = '@Url.Action("FileUpload","plt")' + '?id=' +  encodeURIComponent(rowid);

                 $.ajax({
                           url: url,type: 'GET',success: function(result) {                                    

                if (result.success) {
                  $('#dialog').dialog('close');
                } else {

             // refresh the dialog
                $('#dialog').html(result);
             }
         }

回顾一下,ajax调用确实到达ActionResult,但不确定它何时尝试显示部分视图,它显示HTML与渲染的html.

解决方法

这里的问题是你正在尝试加载尚未渲染到对话框的innerHTML中的剃刀视图.相反,您应该做的是在创建对话框时将对话框的href属性设置为URL.Action链接.请参阅以下链接获取示例.

http://www.matthidinger.com/archive/2011/02/22/Progressive-enhancement-tutorial-with-ASP-NET-MVC-3-and-jQuery.aspx

一个选项,它不是可维护的IMO,但它将以您当前的方式工作,是从操作方法返回原始HTML.

我认为第一种解决方案更好,因为控制器没有被HTML字符串连接污染.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐