【问题标题】:VB.NET While Returning String返回字符串时的 VB.NET
【发布时间】:2016-01-09 19:05:31
【问题描述】:

我有一个在前端通过 AJAX 调用的 VB.NET 函数。 AJAX 调用会传回一些参数,后端的函数会生成一个 HTML 表格,并将其作为字符串返回给前端。例如,我会返回类似:<table><tr><td>hello</td></tr></table>

我的 VB 函数如下所示:

Public Shared Function MakeTable(arg1, arg2) as String
   ' Do magic
   return myTableInStringFormat
End Function

我在使用我的代码时遇到了一些问题,并将其缩小到来自后端的字符串的长度。当返回的字符串大于 65535 个字符时,它不会到达前端。我相信这与以下内容有关:https://msdn.microsoft.com/en-us/library/wdzat713.aspx

如何在避免字符串字符行限制的同时返回数据?行继续字符似乎是答案,但我不确定如何使用这些字符,因为我需要返回一个字符串。

EDIT1:更多代码。这是我的 AJAX 回发代码,以及表格附加代码:

function GetMyTable(arg1, arg2) {
   type: "POST",
   url: myHandler.ashx/MakeTable",
   data: "{'arg1':'" + arg1+ "','arg2':'" + arg2+ "'}",
   contentType: "application/json; charset=utf-8",
   dataType: "json",

   success: function (msg) {
      $("#myTable").empty().append("").append(msg.d);
      },

   error: function () {
      alert("Failed to load ");
   }
   });
   }

编辑2。这是 AJAX 调用的后端函数:

<System.Web.Services.WebMethod()> _
Public Shared Function MakeTable(arg1 As String, arg2 As String) As String
   Dim dString As New StringBuilder
   ' Some datareader gets data from database...
    dString.Append("<tr><td>hello</td></tr>")
    return dString.toString()
End Function

【问题讨论】:

  • 指南是指代码,特别是一行代码,而不是变量的长度,这不是你的问题。检查浏览器的控制台日志是否给你同样的错误,有时这是一个安全问题,因为发送代码有潜在的危险。
  • 没有收到任何错误。没有任何东西被退回。小于 65535 个字符的字符串是可以的。
  • 一个字符串可以是大约 20 亿个 unicode 字符,所以它可能也不是。
  • 首先,我们需要查看更多代码才能提供帮助。如果你在上述函数的开头打断点,你得到的错误信息是什么?
  • @Caboose 所以,向我们展示更多代码。我不知道您的所有代码,但是当您在服务器端获取 html 代码(尤其是某些字符)时,您必须设置 validateRequest="false" 但这也可能很危险。

标签: javascript jquery ajax vb.net


【解决方案1】:

找出问题所在。最终 JSON 字符串的大小受到限制。我将以下内容添加到我的 web.config 中,一切都很好!

    <scripting>

      <webServices>

        <jsonSerialization maxJsonLength="2147483644"></jsonSerialization>

      </webServices>

    </scripting>

  </system.web.extensions>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-17
    相关资源
    最近更新 更多