Skip to main content
 首页 » 编程设计

javascript之如何从javascript获取C#代码

2024年08月06日43emanlee

我想在单击“登录”按钮时将用户信息存储到本地存储中。现在的问题是,当我点击登录按钮时,我正在获取用户信息。我在 .ascx 文件中使用 javascript 定义了本地存储代码。我的代码隐藏文件包含用户信息的值,我想使用该值存储到本地存储中。

这是我的 javascript 本地存储代码:

LocalStorage.setItem("TestUser", JSON.stringify({ 
        "Usr_Username": “The username(string)”, 
        "Usr_Email": “Email(string)”, 
        "Usr_FirstName": “First name(string)”, 
        "Usr_LastName": “Last name(string)”, 
        "Usr_CompanyName": “Company name(string)”, 
        "Usr_CountryCode": “Country code(string)”, 
        "isAdmin": “If the user has admin rights(boolean)” 
    } 
}); 

我想使用 DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo()

从 C# 代码中获取用户名、电子邮件、名字、姓氏

我怎样才能做到这一点?请指导我。谢谢。

请您参考如下方法:

您可以创建 HttpHanlder 并通过 jQuery ajax 调用它:

 $.ajax({ 
     url: "/User.ashx", 
     contentType: "text/plain",         
      contentType: "application/json; charset=utf-8", 
   success: function (data) { 
    LocalStorage.setItem("TestUser", data); 
   } 
}); 

和 User.ashx 应该是这样的:

public class User : IHttpHandler 
{ 
  public void ProcessRequest(HttpContext context) 
  { 
     JavaScriptSerializer serializer = new JavaScriptSerializer(); 
     context.Response.ContentType = "text/html"; 
     var currentUser = DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo(); 
 
     var serUser = javaScriptSerializer.Serialize(currentUser); 
     context.Response.Write(serUser); 
  } 
  public bool IsReusable 
  { 
    get 
    { 
        return false; 
    } 
  } 
} 

或者您可以使用 WebAPI 创建操作并从 ajax 调用它。两者相似,取决于您更喜欢哪一个