joh*_* Gu 11 javascript asp.net-mvc asp.net-mvc-4
我有一个脚本文件调用JSON API,我需要发送当前登录用户名作为调用的一部分.我尝试了以下方法: -
$(document).ready(function () {
var name = prompt("Please enter your packageid", "test");
var fullurl = 'http://localhost:8080/jw/web/json/workflow/process/list?j_username=kermit&hash=9449B5ABCFA9AFDA36B801351ED3DF66&loginAs=' + HttpContext.Current.User.Identity.Name + 'packageId=' + name;
$.ajax({
type: "GET",
url: fullurl,
dataType: "JSONP",
success: function (result) {
//code goes here
Run Code Online (Sandbox Code Playgroud)
但它会引发以下错误: - 'HttpContext'未定义
Eon*_*dan 18
您的脚本正在寻找一个名为Your code 的Javascript变量HttpContext
@HttpContext.Current.User.Identity.Name
Run Code Online (Sandbox Code Playgroud)
在剃刀
所以javascript成了
var fullurl = 'http://localhost:8080/jw/web/json/workflow/process/list?j_username=kermit&hash=9449B5ABCFA9AFDA36B801351ED3DF66&loginAs=@HttpContext.Current.User.Identity.Name&packageId=' + name;
Run Code Online (Sandbox Code Playgroud)
&如果您打算将它们作为单独的变量,那么您也会在用户名和packageId之间丢失
编辑:基于你的评论,这是在一个js文件里面(我想我在OP中错过了)
两种选择:
页
<script>
var usrName = "@HttpContext.Current.User.Identity.Name";
</script>
Run Code Online (Sandbox Code Playgroud)
JS文件
....&loginAs='+ usrName + '&packageId=' + name;
Run Code Online (Sandbox Code Playgroud)
选项二是根本不包括用户名,只需从Action获取.如果您要发布到的页面位于同一个应用程序中,则这只是一个选项