首页 文章

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

提问于
浏览
2

好的......我知道嵌套标签没有得到官方支持 . 但请留在我这一个..

我有一个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 回答

  • 1

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

  • 1

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

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

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

相关问题