我尝试通过使用jquery单击按钮来显示弹出窗口,此按钮位于与元素对应的行的每一端。
查看:
<input type="button" id="DetailButton" value="Details" onclick="GetDetails(this);"/>
脚本:
function GetDetails(sender) {
var IdElement = $($(sender).parent().parent()).find('input').val();
$.ajax({
type: 'GET',
url: "/ControllerName/ActionName",
data: encodeURI("IdElement=" + IdElement) ,
success: function (view) {
//How to render a view in popup ?
}
});
}
对话框“DialogDetails”位于部分视图中:
<div id="PopUpDetails" >
<table>
<thead>
<tr>
<th colspan="1">Element</th>
</tr>
</thead>
<tbody>
<%
foreach (var Item in Model.List)
{ %>
<tr>
<td>
<%:Html.DisplayFor(model => Item.IdElement) %>
</td>
</tr>
<%} %>
</tbody>
</table>
</div>
控制器:
public ActionResult ActionName(int IdElement)
{
ElementViewModel model = new ElementViewModel ();
return View("DialogDetails", model);
}
答案 0 :(得分:0)
首先将视图作为局部视图返回。 (查看可能没问题,但我没有像这样使用过)
然后你要做的是将ajax调用中的返回结果设置为包含div的对话框的内容。
e.g。
<div id="dialogDiv"><div>
然后你的ajax调用的处理程序执行此操作:
$('#dialogDiv').html(view);
$('#dialogDiv').dialog();
在调用对话框函数之前,必须先设置内容。
这适合我。