javascript - 如何在我的 asp.net mvc 中的脚本文件中获取当前登录用户名

标签 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

但它会引发以下错误:- 'HttpContext' is undefined

最佳答案

您的脚本正在寻找一个名为 HttpContextJavascript 变量,您的代码应该是

@HttpContext.Current.User.Identity.Name

在 Razor 中

所以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;

如果您打算将用户名和 packageId 设为单独的变量,则还缺少 &

编辑:根据您的评论和 js 文件中的内容(我想我在 OP 中遗漏了)

两种选择:

  1. 是将用户名保存在调用脚本文件的页面上的一个变量中。像这样:

页面

<script>
var usrName = "@HttpContext.Current.User.Identity.Name";
</script>

JS文件

....&loginAs='+ usrName + '&packageId=' + name;

选项二是根本不包含用户名,只是从操作中获取。只有当您要发布到的页面位于同一应用程序上时,这才是一个选项

关于javascript - 如何在我的 asp.net mvc 中的脚本文件中获取当前登录用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12820172/

相关文章:

javascript - 如何将 javascript var 值传递给 Grails Controller ?

asp.net-mvc - 如何从 Azure ACS 获取电子邮件和姓名?

c# - 在 MVC3 中录制音频

asp.net-mvc - Visual Studio 2010 : MVC project : filename or extension is too long.(hresult 异常:0x800700ce)

javascript - Express.js net::ERR_CONNECTION_CLOSED

javascript - Sequelize 远程数据库访问

html - 如何为 asp.net mvc4 中的操作链接提供图像

ajax - ASP.NET MVC Ajax 使用 jquery 表单插件上传文件?

javascript - 在 CSS/JS 中可以有一个半透明层覆盖另一个层而不会阻塞/捕获点击

asp.net-mvc-4 - Epplus中加载流导致磁盘写入错误