首先让我说我认为这个网站是天赐之物,我非常感谢我学到的所有东西。我正在使用一个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'需要你错过了一个回调参数。您必须执行收到响应时发生的情况。 –