2013-10-01 5 views
0

Я работаю простым модным всплывающим окном. Моя цель - отправить информацию о диалоге в другое представление. Мой индекс ниже.asp.net mvc modal popup

<button id="modal-opener">Open</button> 
<div id="dialog-modal"> 
    @using (Ajax.BeginForm("Index",new AjaxOptions{UpdateTargetId = "ID",HttpMethod = "Post",OnSuccess = "onSuccess"})) 
    { 
     <div> 
      <fieldset> 
       <legend>Acount Information</legend> 
       <div id="editor-label"> 
        @Html.LabelFor(a=>a.FirstName) 
       </div> 
       <div id="editor-field"> 
        @Html.TextBoxFor(a=>a.FirstName) 
        @Html.ValidationMessageFor(a=>a.FirstName) 
       </div> 
       <div id="editor-label"> 
        @Html.LabelFor(a=>a.LastName) 
       </div> 
       <div id="editor-field"> 
        @Html.TextBoxFor(a=>a.LastName) 
        @Html.ValidationMessageFor(a=>a.LastName) 
       </div> 
       <p> 
        <input type="submit" value="submit"/> 
       </p> 
      </fieldset> 

     </div> 

    } 
</div> 

И мой _Layout.cshtml ниже:

<script> 
    $(function() { 
     $("#dialog-modal").dialog({ 
      autoOpen: false, 
      width: 300, 
      height: 250, 
      show: { 
       effect: "blind", 
       duration:1000 
      }, 
      hide: { 
       effect: "explode", 
       duration:1000 

      } 
     }); 
     $("#modal-opener").click(function() { 
      $("#dialog-modal").dialog("open"); 
     }); 

    }); 
    function onSuccess() { 
     $("#dialog-modal").dialog("close"); 

    } 
</script> 

И мой контроллер находится ниже, поэтому я хочу, чтобы отправить ПгвЬЫат и LastName для просмотра подробной информации

public ActionResult Index() 
    { 
     return View(); 
    } 

    [HttpPost] 
    public ActionResult Index(Person person) 
    { 
     return RedirectToAction("Details",person); 
    } 

    public ActionResult Details(Person person) 
    { 

     return View(person); 
    } 
+0

Так что проблема ? – asymptoticFault

+0

Проблема заключается в следующем, когда я нажал кнопку всплывающего окна, но браузер не был прямым для просмотра деталей – Zamir10

ответ

0

Если вы хотите выполните полную переадресацию, а не частичную обратную передачу, вам необходимо будет изменить эту строку:

@using (Ajax.BeginForm("Index",new AjaxOptions{UpdateTargetId = "ID",HttpMethod = "Post",OnSuccess = "onSuccess"})) 

в

@using(Html.BeginForm("Index")) 

Если вы просто хотите, чтобы сделать частичный постбэк к детальному представлению, а затем изменить действие на от индекса к деталям

@using (Ajax.BeginForm("Details",new AjaxOptions{UpdateTargetId = "ID",HttpMethod = "Post",OnSuccess = "onSuccess"})) 

HTH