在对话框中渲染局部视图(弹出)

时间:2014-12-30 11:30:11

标签: jquery asp.net-mvc asp.net-ajax

我尝试通过使用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);

}

1 个答案:

答案 0 :(得分:0)

首先将视图作为局部视图返回。 (查看可能没问题,但我没有像这样使用过)

然后你要做的是将ajax调用中的返回结果设置为包含div的对话框的内容。

e.g。

<div id="dialogDiv"><div>

然后你的ajax调用的处理程序执行此操作:

$('#dialogDiv').html(view);
$('#dialogDiv').dialog();

在调用对话框函数之前,必须先设置内容。

这适合我。