我正在从.net中的代码后面发送一个javascript函数。问题是字符串长度超过200个字符,javascript函数似乎不接受字符串。这个变量有多长是可以限制的,并且可以解决这个问题吗?
If dr("ReturnType").ToString() = "Override" Then
Dim teststring As String = "openWin('" & dr("ReturnValue").ToString() & "');"
ScriptManager.RegisterStartupScript(Me, Me.[GetType](), "openWin", teststring, True)
End If
答案 0 :(得分:4)
是的,有一个限制:大约2GB,它可以存储在.NET中的字符串中。但是因为我们可以安全地假设你没有从服务器向客户端发送这种卷(或者至少我们可以希望),另一种可能性是你的字符串没有被编码。因此在将其发送到客户端之前对其进行编码。确保字符串或对象正确编码的最佳方法是JSON序列化它。在.NET中,可以使用JavaScriptSerializer类轻松实现:
var value = new JavaScriptSerializer().Serialize("some string that contains ' and \".");
var script = string.Format("alert({0});", value);
ClientScript.RegisterStartupScript(GetType(), "someKey", script, true);
答案 1 :(得分:3)
没有
你可能忘了逃避字符串。
答案 2 :(得分:0)
最大文字字符串长度会因实现而异,但在现代浏览器中,长度可能仅限于浏览器可用的内存量。
例如,我刚刚尝试在Chrome中进行测试,在我决定杀死该进程之前,它让我为单个字符串文字消耗了超过400 MB的内存。