如何使用Razor ASP.NET MVC连接HTML元素的ID

28

我有一个带复选框的网格列,我想给它们一个不同的ID。 ID基于模型中的CustomerId。 我应该使用什么语法来连接chk_@item.CustomerId。

// using the telerik grid 
id="chk_@item.OrderNumber"  // does not work 

// 这将把 @item.Customernumber 的值作为复选框的 id

columns.Template(@<text><input type='checkbox' id="@item.Customernumber" name="@item.CustomerNumber" value="@item.OrderNumber" /></text>).Width(50)
第二个选项:
columns.Template(@<text><input type='checkbox' id="chk_@item.Customernumber" name="@item.CustomerNumber" value="@item.OrderNumber" /></text>).Width(50)

以上将呈现为

<input type="checkbox" id="chk_@item.Customernumber" value=... /> 

你如何得出“不起作用”的结论,发生了什么事情。从您发布的代码中,我无法确定这是来自您的视图还是控制器。请再发布一点更多的内容(包装{}或<tag>将很好地获取上下文)。 - GvS
1
@johndoe,这个答案解决了问题。你能标记它为答案吗? - AnarchistGeek
https://dev59.com/Cmw15IYBdhLWcg3wWqZ0 - AnarchistGeek
3个回答

48

chk_@item.OrderNumber 无法正常工作,因为 Razor 将其视为电子邮件地址,您需要像这样进行更改:chk_@(item.OrderNumber)


1
它还在数据中添加了“(”符号。 - Saboor Awan
2
这里是另一篇帖子,希望能对某人有所帮助。 - Shaiju T

34

正确的语法

id="@("chk_"+@item.Id)"

0

这在最新的MVC中现在可以工作:

id="chk_@item.OrderNumber"

编程愉快。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接