You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET中无需JavaScript,如何在HTML属性内拼接文本?

解决ASP.NET ListItem属性中拼接资源文本的问题

嘿,我明白你的需求——不想写JS,直接在HTML里给资源字符串加上<和>对吧?你的那种直接拼接写法不可行,因为ASP.NET的<%$ Resources:... %>表达式语法只能作为属性的完整值,没法和其他字符串直接混写在属性里。不过有几个简单的办法能实现你的需求,咱们来看:

方法一:使用数据绑定表达式(<%# %>)

这种方法需要确保你的下拉列表控件执行数据绑定操作,写法如下:

<asp:DropDownList ID="DropDownList1" runat="server">
    <asp:ListItem Value="1" Text='<%# "<" + Resources.LocalizedText.LastSession + ">" %>' />
</asp:DropDownList>

然后在后台代码的Page_Load事件里添加数据绑定的代码:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        DropDownList1.DataBind();
    }
}

这样页面加载时,数据绑定表达式会被解析,把资源文本和前后的符号拼接起来。

方法二:直接在后台代码添加ListItem

如果不想在前台写表达式,也可以直接在后台创建ListItem并添加到下拉列表里,这样更直观:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        string displayText = $"<{Resources.LocalizedText.LastSession}>";
        DropDownList1.Items.Add(new ListItem(displayText, "1"));
    }
}

前台只需要保留空的DropDownList控件即可:

<asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>

方法三:修改资源文件(备选)

如果你的场景允许修改资源文件,直接在LocalizedText.resx里把LastSession的值改成<你的文本>也是个省事的办法,这样前台直接用原来的写法就行:

<asp:ListItem Value="1" Text="<%$ Resources: LocalizedText, LastSession%>" />

不过这个方法只适合不需要动态拼接,且资源值固定带符号的场景。

总结一下,前两种方法都不需要写JS,完全在ASP.NET的服务器端处理就能实现你要的效果~

内容的提问来源于stack exchange,提问作者Moemegildo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:52:29