asp.net <form>标签被剥离出asp:literal </form>

时间:2013-12-20 18:46:22

标签: asp.net .net vb.net

好的......我知道嵌套标签不受官方支持。但请留在我这一个..

我有一个带有标准&lt; form runat = server&gt;的ASP.NET网页标签在顶部。我通过服务器端的HttpWebRequest(代码隐藏)从第三方源中提取表单(和相关字段)。我可以验证我得到的数据包含&lt; form&gt; tag - 通过Trace语句。然后我将数据分配给我的文字:


    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以某种方式删除了&lt; form&gt;文字内的标记。

我也尝试过分配变量&#34; strResponse&#34;要显示的公共变量,它也删除了标记。我尝试将变量分配给asp:Label也没有运气。我尝试将值分配给&#34; PreRender&#34;功能没有成功。

对此的任何想法以及为什么.NET正在剥离&lt; form&gt;标记

谢谢!

2 个答案:

答案 0 :(得分:1)

您是对的 - 不支持嵌套表单标记。你可以做的是生成JavaScript,将字符串传递给ASP.NET表单之外的HTML容器,或者更好的是,将其输出到独立的iframe。

答案 1 :(得分:1)

我遇到了同样的问题。通过在我真正想要插入的表单之前添加另一个表单,我能够解决这种情况。看起来ASP只是非常活泼,足以剥离它发现的第一家公司。 也许这对你有用:

me.litCMSForm.Text = "<form name='fakeOut'></form>" + strResponse

我实际上我的表单代码有点发烧友(我给了它一个动作和一个隐藏的输入)。我没有继续测试,看看有什么可以带走,因为它有效。