将视图中的值传递给以模态渲染的局部视图

时间:2014-05-05 04:43:49

标签: c# jquery asp.net-mvc asp.net-mvc-partialview

我有一个关于将一个id从一个表单传递到一个模态的局部视图的问题。

所以这是我的视图,表单是和调用ajax模式的按钮:

@foreach (var item in Model)
{
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Title)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Description)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.ProjectId)
        </td>
        <td>
            <button class="launch" value= @item.Id role="button">do it</button>
}

这是我的ajax调用,它来自视图中按钮的“启动”类:

<script>
    $(function () {
        $("#triage-modal").dialog({
            autoOpen: false,
            height: 600,
            width: 700,
            modal: true,
            open: function (event, ui) {
                $(this).load("@Url.Action("defectsPartial")");
            },
                buttons:{
                    "Close": function(){
                        $(this).dialog("close");
                    }
                }
        });
        $(".launch").click(function () {
            $("#triage-modal").dialog("open");
        })
    });
</script>

这是我的控制器动作:

public ActionResult defectsPartial()
{
    return PartialView("defectsPartial");
}

所以我的问题是如何从视图表单,模态和局部视图中获取@item.Id值?任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

这样的东西

<script> var theId = -1; $(function () { $("#triage-modal").dialog({ autoOpen: false, height: 600, width: 700, modal: true, open: function (event, ui) { $(this).load("@Url.Action("defectsPartial")?id=" + theId); }, buttons:{ "Close": function(){ $(this).dialog("close"); } } }); $(".launch").click(function () { $("#triage-modal").dialog("open"); theId = $(this).attr("value"); }) }); </script>

有点奇怪,因为你正在使用模态的open函数来执行加载,所以你需要将Id存储在某处从这里引用它,考虑在启动按钮的click事件中执行加载,那么你可以直接使用Id