常量 TEXTBOX_CSS_CLASS 在页面的代码隐藏类继承自的基类中定义: public class MyPageBas-6ren">
gpt4 book ai didi

asp.net - Web 窗体错误消息 : "This is not scriptlet. Will be output as plain text"

转载 作者:行者123 更新时间:2023-12-03 10:10:34 25 4
gpt4 key购买 nike

在我的 ASP .NET Web 窗体中,我有以下声明性代码:

<asp:TextBox runat="server" ID="txtbox" CssClass='<%=TEXTBOX_CSS_CLASS%>' />

常量 TEXTBOX_CSS_CLASS 在页面的代码隐藏类继承自的基类中定义:
public class MyPageBase : Page
{
protected internal const string TEXTBOX_CSS_CLASS = "myClass";
}

然而,编辑时编译器警告我“这不是 scriptlet [原文如此]。将输出为纯文本”。
诚如其言,css 类按字面意思呈现为“<%=TEXTBOX_CSS_CLASS%>”。

此错误消息是什么意思,是否有解决方法,以便我仍然可以在基类中使用常量?

最佳答案

您不能使用 <%= ... %>设置服务器端控件的属性。
内联表达式 <% %>只能用于
aspx 页面或用户控件的顶级文档级别,但不能嵌入
服务器控件的标签属性(例如 <asp:Button... Text =<% %> ..> )。

如果您的 TextBox 在 DataBound 控件中,例如 GridView、ListView .. 您可以使用:<%# %>句法。或者您可以显式调用 DataBind()在代码隐藏或内联服务器脚本的控件上。

<asp:TextBox runat="server" ID="txtbox" class='<%# TEXTBOX_CSS_CLASS %>' />

//代码后面的文件
protected void Page_Load(object sender, EventArgs e)
{
txtbox.DataBind();
}

ASP.NET 包含一些内置的表达式生成器,允许您从 web.config 中提取自定义应用程序设置和连接字符串信息。文件。例子:
  • 资源
  • 连接字符串
  • 应用设置

  • 因此,如果您要检索名为 className 的应用程序设置来自 <appSettings> web.config 的一部分文件,您可以使用以下表达式:
    <asp:TextBox runat="server" Text="<%$ AppSettings:className %>" /> 

    但是,上面的代码片段并不是从 Appsettings 中读取类名的标准。

    您可以构建和使用您自己的自定义 ExpressionBuilders或使用后面的代码:
    txtbox.CssClass = TEXTBOX_CSS_CLASS;

    Check this link 关于构建自定义表达式构建器。
    构建自定义表达式后,您可以显示如下值:
    <asp:TextBox Text="<%$ SetValue:SomeParamName %>"
    ID="setting"
    runat="server" />

    关于asp.net - Web 窗体错误消息 : "This is not scriptlet. Will be output as plain text",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18952849/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com