通过jquery ajax调用发送模型到对话框

时间:2012-09-28 08:08:51

标签: jquery asp.net-mvc-3 razor

我有这个编辑按钮:

 @Ajax.ActionLink(" ", "Edit", new { oid = item.memoOID }, new { id = "edit_" + item.memoOID })

我想从控制器操作“编辑”填充实体并将其发送到下面定义的对话框(我希望它替换新的Domain.Model.memo():

<div id="memoAddDialog" title="New Memo" style="display: none">
    @Html.Partial("~/Views/Pat/newMemoDialog.cshtml", new Domain.Model.memo())
</div>

使用此弹出窗口:

function OpenMemoDialog() {
        $("#memoAddDialog").dialog("open");
    }

    $("#memoAddDialog").dialog({
        autoOpen: false,
        height: 575,
        width: 900,
        dialogClass: "positioning24"
    });

我只是不知道如何将值传递给该局部视图并需要一些指针;有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

试试这个

  //In View 
    @Ajax.ActionLink("AjaxLink", "Edit", new { oid = item.memoOID ,id = "edit_"+item.memoOID }, new AjaxOptions { UpdateTargetId = "memoAddDialog", HttpMethod = "Post",OnSuccess="Success" })

    <div id="memoAddDialog" title="New Memo" style="display: none">
    </div>

<script type="text/javascript">
function Success()
{
  //open your dialogbox here
   $("#memoAddDialog").dialog("open");
}

</script>

在控制器

[httpPost]
public ActionResult Edit(string oid , string id)
{
     //perform your functionality 

    return PartialView("~/Views/Patient/newMemoPatientDialog.cshtml", new Mavi.Domain.Model.memo());
}

注意:在Ajax.ActionLink中,您必须提供 UpdateTargetId ,其结果将出现在Page

答案 1 :(得分:0)

我会做这样的事情:

<a href="OpenMemoDialog('@(Url.Action("Edit", new oid = item.memoOID)')" />

使用OpenMemoDialog:

function OpenMemoDialog(url) {
        $("#memoAddDialog").dialog("open");
        $("#memoAddDialog").load(url);
    }

memoAddDialog只是一个空的div&amp;您的“编辑”操作应返回部分视图。