Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在脚本中传递MVC视图会话_C#_Asp.net Mvc_Asp.net Mvc 4_Asp.net Mvc 3_Asp.net Mvc 5 - Fatal编程技术网

C# 如何在脚本中传递MVC视图会话

C# 如何在脚本中传递MVC视图会话,c#,asp.net-mvc,asp.net-mvc-4,asp.net-mvc-3,asp.net-mvc-5,C#,Asp.net Mvc,Asp.net Mvc 4,Asp.net Mvc 3,Asp.net Mvc 5,我有一个mvc控制器,在控制器中处理会话中的所有Azure Api密钥,并在视图中传递它 public ActionResult Index() { Session["azureappkey"] = "xxx-xxxx-xxx-xx"; // pass to view return View(); } 鉴于: <h2>Index</h2> <p> @HttpContext.Current.Session["azureappkey"];<

我有一个mvc控制器,在控制器中处理会话中的所有Azure Api密钥,并在视图中传递它

public ActionResult Index()
{
    Session["azureappkey"] = "xxx-xxxx-xxx-xx"; // pass to view
    return View();
}
鉴于:

<h2>Index</h2>

<p> @HttpContext.Current.Session["azureappkey"];</p> // got the session value working as expected
@{ 
    var x = HttpContext.Current.Session["azureappkey"];    // not working assign to variable and pass inside the script
    <script>
        alert(this.x);
        alert (x); // GETTING UNDEFINED
    </script>
}
索引
@HttpContext.Current.Session[“azureappkey”]

//已使会话值按预期工作 @{ var x=HttpContext.Current.Session[“azureappkey”];//在脚本中分配给变量并传递时不起作用 警报(this.x); 警报(x);//未定义 }
Azure应用程序密钥写在段落标记中,但未在脚本部分中定义


任何人都可以更正实现。

您当前使用的块是Razor块而不是JS块,并且您正在将会话状态内容分配给C变量而不是JS变量(请参见下面的范围):

如果Azure API键包含JSON字符串格式,请将
JSON.Encode
放入
@Html.Raw
帮助程序中,正如Stephen所说:

<script>
    var x = @Html.Raw(Json.Encode(HttpContext.Current.Session["azureappkey"]));

    alert(x);
</script>

var x=@Html.Raw(Json.Encode(HttpContext.Current.Session[“azureappkey”]);
警报(x);

工作示例:

问题是什么?什么不起作用?我在段落标记或dom中获取会话值,当我在变量x中赋值并在脚本块中传递时,我无法获取值。如何将其存储在变量中并在视图中的其他区域中继续。您正在尝试混合C#和JavaScript。通常情况下,您不想这样做。当我们使用模型并在脚本中为变量赋值时//Read embed application token from model var accessToken=“@model.embeddetoken.token”
var x=@Html.Raw(Json.Encode(HttpContext.Current.Session[“azureappkey”];);警报(x)
<script>
    var x = '@Html.Raw(HttpContext.Current.Session["azureappkey"])';

    alert(x);
</script>
<script>
    var x = @Html.Raw(Json.Encode(HttpContext.Current.Session["azureappkey"]));

    alert(x);
</script>