[英]using ViewBag - asp.net mvc
在asp.net mvc项目中,我在index.cshtml文件的顶部
$.ajax({
url: '@Url.Action("getLoggedUser", "Home")',
dataType: "html",
"async": true,
type: "GET",
success: function (data) {
},
});
它使用的方法就是这一方法,即在HomeController上
public async Task getLoggedUser()
{
try
{
BenchesService benchService = new BenchesService();
UserTest LoggedUser = new UserTest();
string name = Request.RequestContext.HttpContext.User.Identity.Name;
name = name.Substring(name.LastIndexOf('\\') + 1);
LoggedUser = await benchService.getCurrentUser(name);
role = LoggedUser.role;
ViewBag.LoggedUser = LoggedUser.role;
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
这使用getCurrentUser(name)对服务器进行GET; 并返回带有用户信息的json,我用它来填充UserTest对象(我检查了break并正确填充了LoggedUser)。
我要保存用户角色,以在html / javascript部分中使用
然后再次在我的index.cshtml上我有另一个脚本
$(document).ready(function () {
setTimeout(function () {
console.log("TIMER!");
userRole = '@ViewBag.LoggedUser';
alert(userRole);
}, 5000);
我的问题是警报显示一个空消息,例如ViewBag.LoggedUser
没有任何内容。 我使用ViewBag
错误吗?
您要重新加载页面吗? 如果不是,则您的ViewBag具有与呈现页面时相同的内容。 Razor仅在创建html页面时才从ViewBag渲染文本,如果您不重新加载页面,它将始终为空。 您必须将某个对象(例如json)中的数据返回给ajax请求,然后才能使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.