如何从Javascript设置.net公共属性值?

时间:2015-01-19 09:27:16

标签: javascript c# jquery .net vb.net

代码隐藏:

SessionData("UserRole") = "Manager"

SessionData为Public Property SessionData(sessionVariableName As String) As String

是否可能SessionData("UserRole")值设置为来自Javascript的"Supervisor"

1 个答案:

答案 0 :(得分:0)

使用客户端代码直接设置服务器端的变量值是不可能的。但是,正如一些评论者建议的那样,您可以使用Ajax请求将数据发送到服务器,并使用类似通用处理程序页面的方式处理传入的数据。这可以使用与大多数现代浏览器一起打包的XMLHttpRequest类来完成。或者,您可以使用像jQuery这样的库,其中包含.ajax() method,允许您发送Ajax请求,而不必担心您正在使用的特定浏览器。

在服务器端,您将创建一个通用处理程序页面(.ashx),作为Ajax请求的目标URL。使用jQuery.ajax方法传递的数据对象中包含的每个属性都将在处理程序页面中通过HttpContext.Request.Params集合提供,方法是向Params集合提供一个键,如context.Request.Params [“someAjaxDataPropertyName “]。

如果您使用这种方法,您显然希望在服务器端包含每个传入Ajax请求的身份验证和授权代码,否则您的任何用户都可以轻松地创建自己的Ajax请求来升级他们的权限,无论您是否需要它们是否。