C# 如何在ASP.NET MVC中使用外部js文件中的jQuery获取会话变量的值

C# 如何在ASP.NET MVC中使用外部js文件中的jQuery获取会话变量的值,c#,javascript,jquery,asp.net-mvc,C#,Javascript,Jquery,Asp.net Mvc,我有一个ASP.NET MVC5项目,在该项目中,我正在使用setSession()设置控制器中的会话值,setSession()是userId。 然后我需要在.js文件中检索或获取该值(并将其设置为TextBox) 但无法在.js文件中获取该值 下面是我的.js文件代码 function populateUser() { debugger; $.ajax({ type: "GET", url: '/UserProf

我有一个ASP.NET MVC5项目,在该项目中,我正在使用setSession()设置控制器中的会话值,setSession()是userId。 然后我需要在.js文件中检索或获取该值(并将其设置为TextBox)

但无法在.js文件中获取该值

下面是我的.js文件代码

function populateUser() {
        debugger;
        $.ajax({
            type: "GET",
            url: '/UserProfile/SetSessionValues',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            async: true,
            success: function (data) {
                if (data) {
                    var user = $.session.get("UserName");
                    $("#txtUserName").val(user);  

                                }
            },
            error: function (msg) {
                alert("Error :" + msg.responseText);
            },

        });
    }
在控制器中:-

ViewBag.myVar = HttpContext.current.Session["UserName"].ToString();
可以将参数指定为控件的值

<input type="hidden" value = "@ViewBag.myVar" id="myHiddenVar" /> 

您可以使用如下JavaScript变量:

HTML:

此外,您还可以按照Neel的建议使用隐藏变量

请尝试以下链接中的解决方案:

看一看。您可以在Nuget包管理器中找到它


它允许您在
.js
文件中使用类似剃刀的标记(例如:@data)。

您正在使用吗?您在
数据中得到了什么
您在哪里设置
用户ID
?在客户端还是在服务器上?如果是在客户端,请向我们展示代码。@Satpal我没有使用您提到的任何插件。我得到的返回字符串是哪个控制器方法返回data@Patrick Hofman我在controlleral中设置userId虽然链接可能有用,但最好在你的帖子中包含相关部分。你仍然可以编辑帖子以包含这些信息。否则它很可能会被删除。
value“@ViewBag.myVar”
应该是
value=“@ViewBag.myVar”
@Neel只是为了测试我试过这个:Session[“UserName”]=“Trupti Rane”;ViewBag.myVar=System.Web.HttpContext.Current.Session[“UserName”].ToString();然后使用从cshtml页面访问它,但它不工作
alert($('#myHiddenVar').val());
<head>
    ...
    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />

    @RenderSection("my_script_variables", false)

    <script src="@Url.Content("~/Scripts/external.js")" type="text/javascript"></script>
    ...

</head>
@Section my_script_variables {

    <script type="text/javascript">
            var variable1 = '@myVar1',
            variable2 = '@Session["myVar2"]',
            variable3 = '@ViewBag.myVar3';

        </script>

}
alert(variable1 + ' ' +variable2 +' '+ variable3);