asp.net文本区域默认值转义

时间:2011-11-13 05:46:26

标签: c# asp.net xml xslt textarea

注意:这是一个asp.net页面,但XSLT转换正在客户端进行。 所以我试图在asp.net textarea中设置一个默认值,它正在被转义,这导致我出现问题

这是asp.net文本区域

    <asp:TextBox id="Description" TextMode="MultiLine" 
Columns="50" Rows="4" runat="server" 
ClientIDMode="Static" CausesValidation="false">
<xsl:value-of select="/oohru/form/desc" />
</asp:TextBox>

在页面上它变为

<textarea id="Description" cols="50" rows="4" 
name="ctl00$RightColumn$Description">
&lt;xsl:value-of select="/oohru/form/desc" /&gt;
</textarea>

按字面意思放入文本区域

<xsl:value-of select="/oohru/form/desc" />

我想在那里获得非转义值....如果我只是使用像

这样的常规文本区域
<textarea rows="5" cols="5">
<xsl:value-of select="/oohru/form/desc" />
</textarea>

它运行正常....如何使用ASP.NET控件实现此目的?它基本上打破了我的客户端xslt,但仅限于textarea ......

谢谢!

注意:我也尝试在文本区域内使用text =“{/ oohru / form / desc}”...同样的文本区域包含精确的oohru / form / desc而不是引用的值。

3 个答案:

答案 0 :(得分:1)

你似乎也试图太晚使用XSLT。

我的猜测是你想用XSLT生成控件

在这种情况下,在XSLT转换中,你将拥有:

<asp:TextBox id="Description" TextMode="MultiLine"  
             Columns="50" Rows="4" runat="server"  
             ClientIDMode="Static" CausesValidation="false"> 

   <xsl:value-of select="/oohru/form/desc" /> 
</asp:TextBox> 

您还需要将前缀asp:绑定到某个命名空间。

或者,在XSLT转换中的 ,您可以直接生成textarea

<textarea rows="5" cols="5">  
  <xsl:value-of select="/oohru/form/desc" />  
</textarea>  

最后的注意事项:如果我的猜测错了,您只希望最终用户在textarea字符串"<xsl:value-of select="/oohru/form/desc" />"中看到,那么无关紧要你看到它(在被浏览器显示之前)转义 - 当浏览器显示它时,用户将看到未转义的文本。

更新:@Jordan已经进一步澄清了他的转型是客户端 - 在asp控制已经消失后的方式......

在这种情况下答案是:不,您无法使用asp:TextBox控件生成textarea内的任何标记(文本节点以外的节点) - 它只在其中生成文本。

因此,您必须在服务器上明确生成textarea<xsl:value-of>

答案 1 :(得分:0)

您可以将TextBox控件的Text属性绑定到代码隐藏中的此值。那可能有用。什么是xsl以及你想要打印什么。

答案 2 :(得分:0)

XSL和ASP.NET并不是真正的朋友。

您可以尝试使用here之类的内容,但如果可以的话 - 将xsl移植到资源文件中。