【问题标题】:Can't put a inline tag inside of a html input tag不能在 html 输入标签内放置内联标签
【发布时间】:2011-08-08 20:55:22
【问题描述】:

我有一个输入标签,例如:

<input src="..."   title="<%= SomeResource.Label1 %>" />

不是渲染文本,而是渲染title属性中的实际值:

<%= SomeResource.SoeLabelInMyResourceFile%>

我尝试了单引号并没有改变,我做错了什么?

假设将title属性渲染为:

title="some text value stored in the resource file"

所以问题是服务器标签没有被渲染,而是认为这是我想要为 title 属性的值显示的纯文本。

更新

如果我这样做,文本会很好地呈现:

<td>
<%= SomeResource.Label1 %>
<input src="..."   title="" />
</td>

但如果我将标签放在 title 属性中,就会出现错误。

【问题讨论】:

  • 嗯,我很困惑。渲染值是什么意思?这是您尝试访问的标签控件吗? SomeResource.Label1.Text 呢?
  • 删除“=”号后的空格,然后重试
  • @Phillip 不,不是这样。

标签: c# asp.net


【解决方案1】:

更新

1 创建服务文件夹App_GlobalResources(项目 -> 添加 -> ASP.NET 文件夹)

2 将 resx 文件移动到此文件夹

3 获取数据:

除了编程访问之外,ASP.NET 2.0 还引入了可用于将命名字符串绑定到页面或控件的属性的声明性语法。语法涉及使用美元符号 ($),后跟资源命名空间、资源文件的名称和字符串的名称 [参见 Resources and Localization in ASP.NET 2.0]

<asp:Literal runat="server" Text="<%$ Resources:Resource1, String1 %>" />
<input runat="server" type="text" value="<%$ Resources:Resource1, String1 %>" />

效果很好!


试试看:

<input src="..."   title="<%$ Resources:SomeResource, Label1 %>" />

<input runat="server" src="..."   title="<%$ Resources:SomeResource, Label1 %>" />

【讨论】:

    【解决方案2】:

    你能用 &lt;asp:textbox&gt; 代替它吗?

    【讨论】:

      【解决方案3】:

      尝试使用GetLocalResourceObject()

      <input src="..."   title="<%= GetLocalResourceObject('SomeResource.Label1') %>" />
      

      【讨论】:

        【解决方案4】:

        可能您的输入被标记为 runat="server" ? 如果您删除 runat="server" title="" 将按预期工作。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-09-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-10-06
          • 2015-08-24
          • 2022-12-17
          • 1970-01-01
          相关资源
          最近更新 更多