MVC5 Razor将参数传递给局部视图以进行模态对话框显示

时间:2015-01-27 14:38:00

标签: jquery razor modal-dialog asp.net-mvc-5 asp.net-mvc-partialview

当用户处于“创建”视图中时,我需要向他们显示一些以前记录的数据以进行比较。使用ViewBag将以前数据的ID传递到视图中。我需要一个按钮或一个ActionLink,用户可以单击该按钮打开一个模态对话框,该对话框将显示以前的数据。我已经设置了一个部分视图,它接受一个int ID并返回一个模型,但是我无法成功传递ID,最多只能使用模型中的字段打开对话框,但没有数据,其他尝试甚至没有让模态打开。使用ViewBag.PrimaryGradingID中存储的参数在模式对话框中获取详细信息视图的最佳方法是什么?

在控制器中:

public ActionResult Details(int id)
{
   Grading grading = db.Gradings.Find(id);
   if (grading == null)
   {
      return HttpNotFound();
   }
   return PartialView(grading);
}

详细信息部分视图:

@model Models.Grading
@{
    Layout = null;
}

<div class="primary" title="Primary Grading">
    <dl class="dl-horizontal">
        <dt>
            @Html.DisplayNameFor(model => model.L_COL_Available)
        </dt>
        <dd>
            @Html.DisplayFor(model => model.L_COL_Available)
        </dd>
        ...
    </dl>
</div>

<style>
#primary { display: none; }
*</style>

<script type="text/javascript">
    $(function () {
        dialog = $("#primary").dialog({
            autoOpen: false,
            height: 400,
            width: 400,
            resizable: false,
            modal: true,
            buttons: {
                Cancel: function () {
                    dialog.dialog("close");
                }
            },
            close: function () {
            }
        });
    });
    $('#detailsButton').button().on("click", function (event) {
        dialog.dialog("open");
    });
</script>*

在父视图中:

<input type="button" class="btn btn-primary" id="detailsButton" value="View primary grading data" /> 

0 个答案:

没有答案