【问题标题】:ASP.NET JSON & WebmethodASP.NET JSON & Web 方法
【发布时间】:2015-08-06 08:06:29
【问题描述】:

我将一个带有 JSON 的值从客户端发送到 ASP.NET 中的代码。

一切正常。但是如果我想使用后面代码中的变量,我是无权访问的。

这是我的代码:

Imports System.Web.Services
Imports System.Web.Script.Serialization

Public Class TextExample
    Inherits System.Web.UI.Page

    Dim lala As String

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    End Sub

    <WebMethod()> _
    Public Shared Sub AddTimeToList(myJsonData As String)
        Dim json As New JavaScriptSerializer()

        Dim myTime As String = json.Deserialize(Of String)(myJsonData)

        lala = myTime
    End Sub
End Class

myTime 是我通过 JSON 从客户端获取的值,lala 是顶部定义的变量。

错误代码: 错误 3 如果没有类的显式实例,则无法从共享方法或共享成员初始化程序中引用类的实例成员

JavaScript:

 $.ajax({
                    type: "POST",
                    url: "TextExample.aspx/AddTimeToList",
                    data: "{'myJsonData':'" + JSON.stringify(timer.innerHTML) + "'}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json"
                });

【问题讨论】:

  • @Kabulan0lak 你可能已经正确缩进,但你重新破坏了其他一切......
  • 无权访问是什么意思?
  • 当我运行我的 Web 应用程序时,我在 lala = myTime.错误:错误 3 无法从共享方法或共享成员初始化程序中引用类的实例成员,而没有该类的显式实例。
  • @jonrsharpe 对不起,但我重新打破了什么?我不是故意的。
  • @Kabulan0lak 我所做的其他更改。当您编辑帖子时,请尝试修复所有可能的内容;以我的编辑为例。

标签: asp.net json vb.net


【解决方案1】:

正如错误所述,您正试图从共享方法访问实例值,这是被禁止的。

您需要将 web 方法声明为非共享:

Public Sub AddTimeToList(myJsonData As String)

【讨论】:

  • 这就是我所做的,但我想要的是例如将值添加到这样的标签:Label1.Text = myTime
  • 事实上,恰恰相反;您不需要将该方法声明为共享。我将编辑答案
  • 如果我这样做,我将无法从 javascript (json) 访问该方法。我将我的 javascript 代码添加到我的第一篇文章中。
  • 我不熟悉这个版本的ASP.NET,但是看起来WebMethod通常用在WebService页面而不是UI.Page上。很遗憾,我无法为您提供更多帮助。
【解决方案2】:

所以我解决了这个问题。

我创建了一个列表并将其保存到会话变量中。

    <WebMethod(EnableSession:=True)> _
Public Shared Sub AddTimeToList(myJsonData As String)
    Dim myJson As New JavaScriptSerializer()
    Dim myTime As String = myJson.Deserialize(Of String)(myJsonData)

    HttpContext.Current.Session("mySession") = myTime
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-21
    • 2013-05-21
    • 2016-12-29
    • 1970-01-01
    • 1970-01-01
    • 2014-12-17
    • 2012-03-08
    • 1970-01-01
    相关资源
    最近更新 更多