好的......我知道嵌套标签没有得到官方支持 . 但请留在我这一个..
我有一个ASP.NET网页,顶部有标准的<form runat = server>标记 . 我通过服务器端的HttpWebRequest(代码隐藏)从第三方源中提取表单(和相关字段) . 我可以通过Trace语句验证我得到的数据包含<form>标签 . 然后我将数据分配给我的文字,如下所示:
Dim objRequest As System.Net.HttpWebRequest = System.Net.WebRequest.Create(url)
Dim objResponse As System.Net.WebResponse
objRequest.Method = "POST"
Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData.ToString)
objRequest.ContentType = "application/x-www-form-urlencoded"
objRequest.ContentLength = byteArray.Length
Dim dataStream As Stream = objRequest.GetRequestStream()
dataStream.Write(byteArray, 0, byteArray.Length)
dataStream.Close()
objResponse = objRequest.GetResponse()
Dim streamRead As New StreamReader(objResponse.GetResponseStream())
Dim strResponse As String = streamRead.ReadToEnd()
me.litCMSForm.Text = strResponse
呈现页面时,.NET以某种方式删除了文字内的<form>标记 .
我还尝试将变量“strResponse”分配给要显示的公共变量,并且它也删除了标记 . 我尝试将变量分配给asp:Label也没有运气 . 我尝试将值赋给“PreRender”函数的文字但没有成功 .
有没有想过这个以及为什么.NET会剥离<form>标签?
谢谢!
2 回答
你是对的 - 不支持嵌套的表单标签 . 你可以做的是生成JavaScript,将字符串传递给ASP.NET表单之外的HTML容器,或者更好的是,将其输出到独立的iframe .
我有同样的问题 . 通过在我真正想要插入的表单之前添加另一个表单,我能够解决这种情况 . 看起来ASP只是非常活泼,足以剥离它发现的第一家公司 . 也许这对你有用:
我实际上我的表单代码有点发烧友(我给它一个动作和一个隐藏的输入) . 我没有继续测试,看看有什么可以带走,因为它有效 .