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

代码隐藏:

SessionData("UserRole") = "Manager" 

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

可以从Javascript将SessionData("UserRole")值设置为"Supervisor"吗?

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

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

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