2014-03-31 115 views
1

在外部js文件使用jQuery會話變量的值我有ASP.NET MVC5項目中,我在控制器使用setSession(),這是用戶id設置會話值。 然後,我需要在.js文件中檢索或獲取該值(並將其設置爲TextBox)如何獲得在ASP.NET MVC

但無法在.js文件中獲取該值。

以下是我的js文件的代碼

function populateUser() { 
     debugger; 
     $.ajax({ 
      type: "GET", 
      url: '/UserProfile/SetSessionValues', 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      async: true, 
      success: function (data) { 
       if (data) { 
        var user = $.session.get("UserName"); 
        $("#txtUserName").val(user); 

           } 
      }, 
      error: function (msg) { 
       alert("Error :" + msg.responseText); 
      }, 

     }); 
    } 
+1

是否使用[AlexChittock/jQuery的會話插件](https://github.com/AlexChittock/JQuery-Session-Plugin)?你在'data'中得到了什麼? – Satpal

+0

你在哪裏設置'userId'?在客戶端還是在服務器上?如果是在客戶端,向我們展示代碼。 –

+0

@Satpal我沒有使用你提到的任何插件。和我收到返回字符串哪個控制器方法在數據 – user3480139

回答

2

在你的控制器: -

ViewBag.myVar = HttpContext.current.Session["UserName"].ToString(); 

您可以將參數作爲控制

<input type="hidden" value = "@ViewBag.myVar" id="myHiddenVar" /> 

的價值,並把它在JS輕鬆文件

alert($('#myHiddenVar').val()); 
+0

'值「@ ViewBag.myVar」返回'應該是'值=「@ ViewBag.myVar」' – Joel

+0

是@Joel感謝名單它打字錯誤 – Neel

+0

@Neel只是爲了測試我試過這個:Session [「UserName」] =「Trupti Rane」; ViewBag.myVar = System.Web.HttpContext.Current.Session [「UserName」]。ToString(); 200像素:然後使用<輸入只讀ID =「txtUserName」名稱=「txtUserName」類型=「文本」類=「形控制的」佔位符=「用戶名」大小=「50」風格=「寬度從CSHTML頁面訪問它;」 value =「@ ViewBag.myVar」/>但它不起作用 – user3480139

-1

您可以使用JavaScript變量是這樣的:

HTML:

<head> 
    ... 
    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" /> 

    @RenderSection("my_script_variables", false) 

    <script src="@Url.Content("~/Scripts/external.js")" type="text/javascript"></script> 
    ... 

</head> 

剃刀:

@Section my_script_variables { 

    <script type="text/javascript"> 
      var variable1 = '@myVar1', 
      variable2 = '@Session["myVar2"]', 
      variable3 = '@ViewBag.myVar3'; 

     </script> 

} 

外部JS:

alert(variable1 + ' ' +variable2 +' '+ variable3); 

此外,您還可以使用隱藏Neel建議的變量。

在這個環節嘗試的解決方案:

Pass Session or Viewbag values to JS Files

+0

儘管鏈接可能有用,但最好在文章中包含它的相關部分。 –

+0

我得到它...會盡量照顧它在未來:-)感謝小費... –

+0

您仍然可以編輯自己的帖子包含的信息。否則,它很可能會被刪除。 –

0

RazorJS看看。你可以在你的Nuget Package Manager中找到它。

它可以讓你用剃刀像標籤(例如:@data)在.js文件。