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>
}
一切執行完美但它不會在瀏覽器上顯示內容。任何人都可以幫助我確定我在這裏做錯了什麼?
感謝您的意見。我返回一個常規視圖,其中包含一個對象,我將它傳遞給部分視圖:'@ Html.Partial(「_ Evaluations」,Model.Review)'是否是正確的方法? – Anil
@阿尼爾 - 不,我不這麼認爲。再說一遍,我不確定你想要達到什麼目標,或者我的答案會更全面,而不僅僅是簡單的觀察。 – RPM1984
我正在創建一個視圖,它將向用戶顯示按需值。我在視圖頂部有兩個下拉列表,即州詳細信息和城市詳細信息。在選擇任何Dropdown值時,我會向用戶顯示信息。如果用戶選擇狀態,則不同的信息集和用戶選擇城市,然後選擇不同的信息集。由於我創建了兩個獨立的視圖,並在下拉更改中加載它們的信息類型不同。如果您需要更多詳細信息,請讓我知道。欣賞你的努力來解決我的查詢(我是MVC的新手) – Anil