【问题标题】:How to pass the session value declared in the Controller to jquery variable?如何将Controller中声明的会话值传递给jquery变量?
【发布时间】:2014-02-09 17:28:52
【问题描述】:

我在控制器中创建了一个函数,在其中创建了三个会话并传递了值。我需要将值传递给 jquery 文件中的一些变量以在函数中使用它。 这是控制器功能

public string GetAssociatedCompSetsForGroup(string groupID, string ScreenName)
    {
        Session["WorkBookID"] = Session["workbookId"];
        Session["groupID"] =  groupID;
        Session["ScreenName"] = ScreenName;
        IList<int> compSetsIds = serviceKMALocator.InvokeService<IList<int>>(x => x.GetAssociatedCompSetsForGroup(Convert.ToInt32(groupID), ScreenName));
        string ids = string.Empty;
        foreach (int id in compSetsIds)
        {
            ids = ids + id.ToString() + Constant.SemiColon;
        }
        if (!string.IsNullOrEmpty(ids))
        {
            ids = ids.Substring(0, ids.Length - 1);
        }
        ViewBag.CompSetIds = ids;
        Session[Constant.CompSetIds] = compSetsIds;
        return ids;
    }

并且我在控制器中创建的三个会话的值应该​​传递给以下代码中的变量,我已经尝试过这样的事情。

 var GroupID = '<%=Session("groupID")%>';
var WorkBookID = '<%=Session("WorkBookID")%>';
var ScreenName = '<%=Session("ScreenName")>';


if (GroupID != null && WorkBookID != null && ScreenName != null) 
{


    $.post(compsetForGroup, { groupID: GroupID, ScreenName: ScreenName }, function (jsonData) {
        if (jsonData) {
            function ajaxCall(no) { .....

请帮助我正确的格式。提前谢谢你。

【问题讨论】:

  • 我认为null 在 JavaScript 中没有任何意义,它是 C# 的东西,如果您的会话变量是 null,您的 JavaScript 变量将只是一个空字符串 ('')。将!= null 替换为!= ''。顺便说一句,在您的最后一个变量中,您也缺少 %
  • ASP 是否在将 JS 文件的输出发送到浏览器之前对其进行处理和解析?如果没有,那么您将需要使用 AJAX 从会话中请求必要的变量。
  • 不,值本身没有传递给变量,我可以找到格式 '';错了,但我不知道什么是正确的格式,请帮帮我
  • 我需要将控制器中的会话 [Session["groupID"] = groupID;] 的值传递给 jquery 中的变量 [var GroupID]。我在 jquery 和 mvc 方面很差。请建议我执行此操作的步骤。谢谢。
  • 好吧,&lt;%=Session("groupID")%&gt; 似乎是打印 ASP 变量的正确语法,但如果 ASP 不解析此 JS 文件,那么如果您在浏览器中查看源代码,您应该会看到 var GroupID = '&lt;%=Session("groupID")%&gt;';。我将发表一篇文章,概述 AJAX 的基本概念。

标签: javascript jquery asp.net-mvc-3 session


【解决方案1】:

在您的 JavaScript 代码中:

var WorkBookID = "@Session[0]";
var groupID= "@Session[1]";
var ScreenName = "@Session[2]";

会话 0 到 2 分别相当于 WorkBookID ,groupID,ScreenName 会话的值。

【讨论】:

    【解决方案2】:

    试试这个:

    var GroupID = '<%=Session["groupID"]%>';
    var WorkBookID = '<%=Session["WorkBookID"]%>';
    var ScreenName = '<%=Session["ScreenName"]>';
    
    
    if (GroupID && WorkBookID && ScreenName) 
    {
    

    【讨论】:

      【解决方案3】:

      我就是这样做的

       var OppoId = '@(OMSSession.SessionProperties.SelectedOpportunityId)';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-05-16
        • 2016-05-27
        • 2013-06-01
        • 2011-06-12
        • 2011-03-01
        • 1970-01-01
        • 2017-08-07
        相关资源
        最近更新 更多