2009-05-21 89 views
0

我在循环中绘制一些复选框,我想根据循环迭代的对象设置文本属性。ASP.NET MVC - 复选框文本属性

我有这样的事情:

<asp:CheckBox ID= “CheckBox1 " runat= ”服务器" Text=<%= Html.Encode(item.nome) %>” 选中= “真”/>

的问题(item.nome)出现在了Html.Encode作为纯文本,如果我不使用引号,我得到一个错误。

+2

请重命名此问题。这有点混乱。 – MicTech 2009-05-21 19:29:39

回答

8

或者,使用Html.CheckBox帮手。

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

不要使用<asp:CheckBox>控制 - 创建一个标准的HTML复选框:

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

“不要使用控件”...在MVC应用程序中。 – AaronSieb 2009-05-21 19:50:49

+0

当然 - 我认为这是理解的,考虑到问题是特定于ASP.NET MVC。 – 2009-05-21 20:39:05

1

您不能将ASP.NET控件标记与<%= %>语法混用。你有两种选择:

使用原始HTML为您的复选框,那么你可以使用<%= %>就好。这种风格更适合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