在剃刀中输入名称属性

时间:2011-10-10 15:18:00

标签: asp.net-mvc-3 attributes razor

我正在尝试将MVC2中的以下输入名称属性转换为剃刀中的等效项。

name="<%=ViewData.TemplateInfo.GetFullHtmlFieldName(String.Empty)%>.Day"

在剃须刀中我正在使用

name="@ViewData.TemplateInfo.GetFullHtmlFieldName(String.Empty).Day"

但它抱怨,因为它说“字符串”不包含'Day'的定义,并且没有扩展方法'Day'接受'string'类型的第一个参数可以找到“。该属性是一个日期时间属性,上面的工作在MVC2。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:3)

@(ViewData.TemplateInfo.GetFullHtmlFieldName(String.Empty)).Day

注意方法调用主要部分周围的()。这告诉解析器只包含要编译的()内的元素。其他任何事都被忽略了。这是必要的原因是因为您的代码段的.Day部分看起来像是对编译器的属性调用,并且被视为这样。

答案 1 :(得分:0)

查看是否有效:@ViewData.TemplateInfo.GetFullHtmlFieldName("Day")

另一方面,你想做什么?

答案 2 :(得分:0)

使用以下内容:

name="@(ViewData.TemplateInfo.GetFullHtmlFieldName(String.Empty) + ".Day")"