Javascript 使用ViewBag-asp.net mvc
在asp.net mvc项目中,我在index.cshtml文件的顶部有这个Javascript 使用ViewBag-asp.net mvc,javascript,c#,asp.net,asp.net-mvc,Javascript,C#,Asp.net,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 getLog
$.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(名称)访问服务器;它返回一个带有用户信息的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请求,然后才能使用它。是否重新加载页面?如果不是,则ViewBag的内容与页面呈现时的内容相同。Razor仅在创建html页面时从ViewBag呈现文本,若不重新加载页面,则该页面将始终为空。您必须将某个对象(例如json)中的数据返回到ajax请求,然后才能使用它。是否重新加载页面?如果不是,则ViewBag的内容与页面呈现时的内容相同。Razor仅在创建html页面时从ViewBag呈现文本,若不重新加载页面,则该页面将始终为空。您必须将某个对象(例如json)中的数据返回到ajax请求,然后才能使用它。是否重新加载页面?如果不是,则ViewBag的内容与页面呈现时的内容相同。Razor仅在创建html页面时从ViewBag呈现文本,若不重新加载页面,则该页面将始终为空。您必须将某个对象(例如json)中的数据返回到ajax请求,然后才能使用它。返回一个包含用户信息的json
否它不。。。您没有返回任何内容。只能在服务器端读取ViewBag。返回一个登录用户的json,并在成功回调中访问它,你应该会没事的。我解释错了,我会修复我的帖子@ViewBag.LoggedUser
是razor代码-它在发送到客户端之前在服务器上被解析,所以如果生成视图的GET方法中@ViewBag.LoggedUser
是null
,它不会引起任何警报。你的ajax方法调用了一个什么也不返回的方法,这是完全错误的。使用强类型模型,然后从控制器上的GET实际返回一些内容。返回一个包含用户信息的json
否它不。。。您没有返回任何内容。只能在服务器端读取ViewBag。返回一个登录用户的json,并在成功回调中访问它,你应该会没事的。我解释错了,我会修复我的帖子@ViewBag.LoggedUser
是razor代码-它在发送到客户端之前在服务器上被解析,所以如果生成视图的GET方法中@ViewBag.LoggedUser
是null
,它不会引起任何警报。你的ajax方法调用了一个什么也不返回的方法,这是完全错误的。使用强类型模型,然后从控制器上的GET实际返回一些内容。返回一个包含用户信息的json
否它不。。。您没有返回任何内容。只能在服务器端读取ViewBag。返回一个登录用户的json,并在成功回调中访问它,你应该会没事的。我解释错了,我会修复我的帖子@ViewBag.LoggedUser
是razor代码-它在发送到客户端之前在服务器上被解析,所以如果生成视图的GET方法中@ViewBag.LoggedUser
是null
,它不会引起任何警报。你的ajax方法调用了一个什么也不返回的方法,这是完全错误的。使用强类型模型,然后从控制器上的GET实际返回一些内容。返回一个包含用户信息的json
否它不。。。您没有返回任何内容。只能在服务器端读取ViewBag。返回一个登录用户的json,并在成功回调中访问它,你应该会没事的。我解释错了,我会修复我的帖子@ViewBag.LoggedUser
是razor代码-它在发送到客户端之前在服务器上被解析,所以如果生成视图的GET方法中@ViewBag.LoggedUser
是null
,它不会引起任何警报。你的ajax方法调用了一个什么也不返回的方法,这是完全错误的。使用强类型模型,然后从控制器上的GET实际返回一些内容。