我想在ASP.NET MVC视图页面中的jquery方法中访问Session值。请参阅以下代码,
$('input[type=text],select,input[type=checkbox],input[type=radio]').attr('disabled', '<%= Session["CoBrowse"].ToString() %>');
如何在jquery中获取Session值。
答案 0 :(得分:18)
$('input,select').attr('disabled','<%=Session["CoBrowse"].ToString() %>');
答案 1 :(得分:8)
不确定这是否是最佳路线,但在您的aspx页面中,您可以创建一个返回会话变量值的方法,例如
服务器端:
using System.Web.Services;
[WebMethod(EnableSession = true)]
public static string GetSession()
{
return Session["CoBrowse"].ToString();
}
然后使用jQuery调用此方法客户端:
$.ajax({
type: "POST",
url: "./Default.aspx/GetSession",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(result){
('input[type=text],select,input[type=checkbox],input[type=radio]').attr('disabled', result.d);
}
});
答案 2 :(得分:8)
很多评论:
:checkbox
,:text
等true
或false
的JavaScript。<input type="checkbox" disabled="false" />
也是一个已禁用的复选框,因此您的控件始终处于停用状态。如果这是你选择的方式,请考虑:
var isCoBrowse = <%= Session["Name"].ToString().ToLower() %>;
if(!isCoBrowse) //disable controls
$(":text,:checkbox,:radio").attr("disabled","disabled"); //standard.
这将生成客户端JavaScript代码:
var isCoBrowse = true;
并且,要启用元素:
$("input").removeAttr("disabled");
此外,有更好的方法来实现这一目标。您是否考虑过尽可能禁用服务器端的控件?
答案 3 :(得分:6)
<input id="sessionInput" type="hidden" value='<%= Session["name"] %>' />
var getSessionValue = $('#sessionInput').val();
答案 4 :(得分:1)
如果该Session变量是敏感数据(在这种情况下可能不是),我不会使用此解决方案,因为当您查看javascript源时它会显示Session数据。如果它是敏感的会话数据,通过Web方法访问它(见上面的答案)可能是最好的。
答案 5 :(得分:-1)
轻松!当你知道如何:
@了Html.Encode(会话( “classificationTitle”))...并在.js文件中:
var classificationTitle = document.getElementById('classificationTitle').innerHTML;
抱歉 - 由于此网站删除尖括号,我无法发布完整的HTML :(