mac*_*osh 8 asp.net templates reusability
问这么简单的问题我觉得有些愚蠢,但我似乎无法找到答案.我是ASP.NET(C#)的新手,但我正在学习构建一组显示报告的简单网页.我有一个代表公司名称的变量.我需要在网页上的多个位置输出此变量.我发现输出变量的唯一方法是:
company_name.Text = "Acme Windows";
Run Code Online (Sandbox Code Playgroud)
然后
<asp:literal id="company_name" runat="server" />
Run Code Online (Sandbox Code Playgroud)
我的问题是我想在页面的多个地方使用company_name.我是否真的必须创建一个单独的变量,每次在页面上放置相同的值?如果我只是将上面的XML代码复制到我想要显示变量的所有位置,那么它显然会产生编译错误,因为已经定义了该ID.
我觉得我错过了一些非常明显的东西.
Jef*_*nal 11
最简单的方法是在代码隐藏类中创建一个字符串变量或属性,并使用<%= %>
符号(short for Response.Write
)在页面内联中呈现它:
// You can do this anywhere on your .aspx, as many times as you like.
<%= this.CompanyName %>
// Better yet, html encode the value to protect against various threats,
// such as cross-site script injection (XSS)
<%= HttpUtility.HtmlEncode(this.CompanyName) %>
Run Code Online (Sandbox Code Playgroud)
.NET 4.0引入了一种新的快捷方式符号(Html编码块)来对输出进行html编码:
<%: this.CompanyName %>
Run Code Online (Sandbox Code Playgroud)
关于您的原始方法,ASP.NET Web控件Literal
代表网页的各个部分 - 您不能在页面上多次使用它们,因为对象实例company_name
引用<asp:literal>
.aspx页面中生成的HTML的特定部分.