c# – mvc PartialView with Dialog Partial View显示html
发布时间:2020-12-15 21:46:42 所属栏目:百科 来源:网络整理
导读:我想要做的是打开一个 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-requir
我想要做的是打开一个
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字符串连接污染. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |