我正在尝试通过执行以下操作为输入创建id
id="@ViewData.ModelMetadata.ContainerType.Name + "_" + @ViewData.TemplateInfo.GetFullHtmlFieldId("FromDate")"
但它是通过id =“propertyName +”来实现的。如何在剃刀视图中将两者连接在一起用中间的下划线?
答案 0 :(得分:4)
您可以使用@(expression)
语法来表达显式代码表达式。
你需要在这里明确,因为@ViewData.ModelMetadata.ContainerType.Name
之后的空格不是C#标识符的有效字符,因此评估会在那里停止。
Razor用于处理隐式代码表达式的算法如下:
(取自ScottGu's Blog)
答案 1 :(得分:3)
试试这样:
id="@(ViewData.ModelMetadata.ContainerType.Name)_@(ViewData.TemplateInfo.GetFullHtmlFieldId("FromDate"))"
或者像这样:
id="@string.Format("{0}_{1}", ViewData.ModelMetadata.ContainerType.Name, ViewData.TemplateInfo.GetFullHtmlFieldId("FromDate"))"
答案 2 :(得分:2)
id="@(ViewData.ModelMetadata.ContainerType.Name + "_" + ViewData.TemplateInfo.GetFullHtmlFieldId("FromDate"))"