【发布时间】:2014-01-09 10:30:05
【问题描述】:
我的页面中有ViewBag。页面加载时,显示ViewBag 值。
我还有一个DropDownList。我想更改选择更改事件上的ViewBag 值,并通过ajax 将该值发布到Controller。 Controller 也返回了正确的值。
在我的代码中,ViewBag 正在更新,但它没有显示在 html(浏览器上)上。
我不知道为什么它不起作用!
我的View
<div id="UserSelection">--Select User--
@Html.DropDownListFor(m => m.Item1, new SelectList(Users, "ID", "Names"), new { ID = "UserSelection", @Style = "width:50%;border:none" })
</div>
@Html.Raw(ViewBag.UserID)
我的Controller
public ActionResult Permission()
{
ViewBag.UserID = Session["UserID"].ToString();
ViewBag.Permissions = Session["PermissionCollection"] as List<int>;
return View();
}
[HttpPost]
public ActionResult Users(string UserID)
{
List<int> data = new List<int>();
int id = Convert.ToInt16(UserID);
Permission perm = new Permission();
data = perm.SlectedPermissions(id);
ViewBag.UserID = UserID.ToString();
ViewBag.Permissions = data as List<int>;
return View("Permission");
}
我的jQuery
$("#UserSelection").change(function () {
var ID = $('#UserSelection option:selected').val();
console.log(ID);
$("#empID").val(ID);
$.ajax({
traditional: true,
async: false,
url: '@Url.Content("~/Permission/Users")',
type: "POST",
data: { UserID: ID },
success: function (data) {
}
});
});
【问题讨论】:
-
当您进行 ajax 调用而不用结果更新前端时,您希望如何更新数据?我敢打赌,如果你发一个正常的帖子,它会工作得很好
-
将
url: '@Url.Content("~/Permission/Users")',更改为url: '@Url.Action("Users", "Permission")',。 Content 用于静态文件(即图像),而 Action 用于应用程序中的 url。
标签: jquery asp.net-mvc viewbag