2011-08-23 53 views
1

我使用Ajax窗體回發我的窗體以在MVC中渲染部分視圖。以下是供您參考代碼:MVC3部分視圖不會在下拉回發中呈現

Java腳本,以提高dorpdown事件:

jQuery(document).ready(function() { 

    $("#ReviewPeriodID").change(function() { 

     var f = $("#Form1"); 
     var action = f.attr("action"); 
     var serializedForm = f.serialize(); 
     $.post(action, serializedForm, 
      function() 
      { 
       alert("Finished! Can do something here!") 
      }); 
    }); 

}); 

上面的代碼執行完美,並呼籲回發的具體行動。

控制器動作(回傳):

[HttpPost] 
    public ActionResult Welcome(HomeViewModel model) 
    { 
     String userName = this.GetUserName(); 

     HomeViewModel homeViewModel = GetHomeViewModel(userName, null); 
     Review review = this.OPService 
          .GetReviewDetails(model.ID, model.Employee.ID); 
     homeViewModel.Review = review; 

     return View(homeViewModel); 
    } 

下面是一個查看:

查看代碼(一切都在阿賈克斯形式):

@using (Ajax.BeginForm("Welcome", "Home", new AjaxOptions 
    { InsertionMode = InsertionMode.Replace, UpdateTargetId = "evaDetails" }, 
    new { id = "Form1" })) 

{ 

@Html.HiddenFor(m => m.Employee.ID); 
@Html.HiddenFor(m => m.Employee.FirstName); 
@Html.HiddenFor(m => m.Employee.LastName); 
@Html.HiddenFor(m => m.MinimumManagerCount); 


<table class="tablestyle"> 
    <tr> 
     <td class="highlightTD" colspan="2"> 
         Step 1. Please select a review period</td> 
    </tr> 
    <tr> 
     <td class="firstColumnTD" style="width:30%;" >Review Period</td> 
     <td>@Html.DropDownListFor(m => m.ReviewPeriodID, Model.ReviewPeriods, 
       "-- Select Review Period --")</td> 
    </tr> 
</table> 


<div id="evaDetails"> 
@{ 
    if (Model.Review != null) 
    { 
     <table class="tablestyle"> 
      <tr> 
       <td class="highlightTD">Reviews</td> 
      </tr> 
      <tr> 
       <td> 
        @Html.Partial("_Evaluations", Model.Review) 
       </td> 
      </tr> 
     </table> 
    } 
} 
</div> 
} 

一切執行完美但它不會在瀏覽器上顯示內容。任何人都可以幫助我確定我在這裏做錯了什麼?

回答

1

兩個問題,我可以看到:

  1. 你返回常規視圖,而不是局部的。
  2. 您對$ .post回調中的操作結果沒有做任何處理。
+0

感謝您的意見。我返回一個常規視圖,其中包含一個對象,我將它傳遞給部分視圖:'@ Html.Partial(「_ Evaluations」,Model.Review)'是否是正確的方法? – Anil

+0

@阿尼爾 - 不,我不這麼認爲。再說一遍,我不確定你想要達到什麼目標,或者我的答案會更全面,而不僅僅是簡單的觀察。 – RPM1984

+0

我正在創建一個視圖,它將向用戶顯示按需值。我在視圖頂部有兩個下拉列表,即州詳細信息和城市詳細信息。在選擇任何Dropdown值時,我會向用戶顯示信息。如果用戶選擇狀態,則不同的信息集和用戶選擇城市,然後選擇不同的信息集。由於我創建了兩個獨立的視圖,並在下拉更改中加載它們的信息類型不同。如果您需要更多詳細信息,請讓我知道。欣賞你的努力來解決我的查詢(我是MVC的新手) – Anil