I mam ten przycisk edycji:

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

Chciałbym wypełnić jednostkę z akcji kontrolera "Edytuj" i wysłać ją do okna dialogowego zdefiniowanego poniżej (chcę, aby zastąpił nową domenę.Model.memo() :

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

Z tym wyskakującym okienkiem:

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

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

Po prostu nie wiem, jak przekazać wartość do tego częściowego widoku i potrzebuję kilku wskaźników; czy ktoś może pomóc?

0
Mihai Labo 28 wrzesień 2012, 12:08

2 odpowiedzi

Najlepsza odpowiedź

Spróbuj tego

  //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>

W kontrolerze

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

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

UWAGA: W Ajax.ActionLink musisz podać UpdateTargetId, w którym wynik pojawi się na stronie

1
Shivkumar 28 wrzesień 2012, 12:50

Zrobiłbym coś takiego:

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

Z OpenMemoDialog jako:

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

MemoAddDialog to tylko pusty div, a akcja Edit powinna zwrócić widok częściowy.

0
kows 28 wrzesień 2012, 12:20