【问题标题】:ASP.NET MVC - Checkbox text attributeASP.NET MVC - 复选框文本属性
【发布时间】:2010-10-28 00:38:17
【问题描述】:

我正在循环中绘制一些复选框,并且我想根据循环中迭代的对象设置文本属性。

我有这样的事情:

<asp:CheckBox ID="CheckBox1" runat="server" Text="<%= Html.Encode(item.nome) %>"Checked="true"/>

问题是 Html.Encode(item.nome) 显示为纯文本,如果我不使用引号会出错。

【问题讨论】:

  • 请重命名这个问题。这有点令人困惑。

标签: asp.net-mvc checkbox


【解决方案1】:

或者,使用 Html.CheckBox 助手。

<%= Html.CheckBox( "CheckBox1", true ) %> <%= Html.Encode(Item.none) %>

【讨论】:

    【解决方案2】:

    不要使用&lt;asp:CheckBox&gt; 控件 - 创建一个标准的 html 复选框:

    <input type="checkbox" name="cb" checked="checked"><%= Html.Encode(item.nome) %></input>
    

    【讨论】:

    • “不要使用 控件”... 在 MVC 应用程序中。
    • 当然——考虑到这个问题是针对 ASP.NET MVC 的,我认为这已被理解。
    【解决方案3】:

    您不能将 ASP.NET 控件标记与 &lt;%= %&gt; 语法混合使用。您有两种选择:

    为您的复选框使用原始 HTML,然后您可以使用 &lt;%= %&gt; 就好了。这种风格更适合 ASP.NET MVC。

    <input type="checkbox" name="cb" checked="checked"><%= Html.Encode(item.nome) %></input>
    

    或者您可以使用 ASP.NET 控件友好的数据绑定语法:

    <asp:CheckBox ID="CheckBox1" runat="server" Text='<%# Html.Encode(Container.DataItem, "nome") %>' Checked="true"/> 
    

    但是要使用数据绑定语法,您需要一个数据源控件并位于一个Repeater 控件中。请参阅ASP.NET data binding 了解更多信息。

    【讨论】:

      猜你喜欢
      • 2014-01-23
      • 1970-01-01
      • 2012-09-12
      • 2011-01-24
      • 1970-01-01
      • 2011-01-05
      • 2011-08-03
      • 1970-01-01
      相关资源
      最近更新 更多