Javascript 使用ViewBag-asp.net mvc

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

在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(名称)访问服务器;它返回一个带有用户信息的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实际返回一些内容。