Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim myRedirectUri As Uri
myRedirectUri = myRedirectUri.Replace(vbCrLf, "")
Me.Response.Redirect("http://softmania.in/Services/sms/sms?submit=submit&from=" & TextBox3.Text.ToString & "&" & "recipients=" & TextBox1.Text.Trim & "&" & "msg=" & TextBox2.Text.ToString & "&" & "Sendnow=" & "Send + Now")
End Sub
我有一个textbox2.text是多行的...
当我在多行文本框2中输入消息时,它会显示错误消息..
重定向 URI 不能包含换行符。
最佳答案
URL/URI 不能包含超过一行。例如,这不是一个有效的 URL:
http://www.yahoo.com/
some/
news.html
但这正是发生的情况,因为文本来自多行文本框。
这还暴露了另一个问题,即您必须对放入 URL 中的任何文本进行编码。否则,没有什么可以阻止用户输入类似“asdfasdfsdf&msg=zcxvzxcv&command=delete_everything”之类的内容,当在文本框中输入该内容时,将产生 http://softmania.in/Services/sms/sms?submit=submit&from=asdfasdfsdf&msg=zcxvzxcv&command=delete_everything ——你当然不希望这样。
特殊字符,如 & 和 ?和 = 以及空格和换行符需要为“escaped ”,您可以使用类似 UrlEncode 的函数来执行此操作,像这样:
Me.Response.Redirect("http://softmania.in/Services/sms/sms?submit=submit&from=" & HttpUtility.UrlEncode(TextBox3.Text.ToString) & "&" & "recipients=" & HttpUtility.UrlEncode(TextBox1.Text.Trim) & "&" & "msg=" & HttpUtility.UrlEncode(TextBox2.Text.ToString) & "&" & "Sendnow=" & "Send + Now")
关于asp.net - 请修复此 vb.net 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4406433/