首先讓我說我認爲這個網站是天賜之物,我非常感謝我學到的所有東西。我正在使用一個MVC3組件。我想填充一個選擇列表,當用戶選擇其中一個選項時,我想要加載一個顯示數據的局部視圖。一切工作到目前爲止,除了我錯過了刷新局部視圖的一塊。最初加載頁面時,我在代碼中看到空容器。我沒有得到JS錯誤,Firebug顯示正確格式化的HTML返回。那麼我缺少什麼操作部分來刷新頁面上的局部視圖?請提前告知並告知。用Ajax返回部分視圖,MVC 3
觀:
<tr>
<th>Select a User to view their Roles:</th>
<td><%= Html.DropDownList("UserListForRoleView", list, "Please choose a User")%></td>
</tr>
<tr>
<td>
<% Html.RenderPartial("ViewUsersInRole");%>
</td>
</tr>
$(document).ready(function() {
$('#UserListForRoleView').change(function() {
var selectedID = $(this).val();
$.get('/UserAdminRepository/ViewUsersInRole/?user=' + selectedID)
});
});
控制器:
public ActionResult ViewUsersInRole()
{
string user = Request["user"];
string[] selectedRoles = Roles.GetRolesForUser(user);
List<string> data = new List<string>();
if (selectedRoles.Length > 0)
{
data = selectedRoles.ToList<string>();
}
else
{
data.Add("No data found");
}
ViewData["UsersinRole"] = data;
return PartialView("ViewUsersInRole");
}
的PartialView(在它的全部內容):
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<ul>
<%
List<string> list = ViewData["UsersinRole"] as List<string>;
if (list != null && list.Count > 0)
{
foreach (string item in list)
{ %>
<li><%: item %></li>
<% }
}
%>
</ul>
'$ .get'需要你錯過了一個回調參數。您必須執行收到響應時發生的情況。 –