我的页面中有ViewBag
。加载页面时,它显示ViewBag
值。
我也有DropDownList
。我想更改选择更改事件的ViewBag
值,并通过Controller
将值发布到ajax
。 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) {
}
});
});
答案 0 :(得分:0)
您的观点Permissions.cshtml
未使用ViewBag.Permissions
。
您可以access ViewBag data only in the returning view
,在这种情况下,它是Permissions.cshtml。
此@Html.Raw(ViewBag.UserID)
代码在主视图中定义,而不是权限视图的一部分。因此它不适合你