我正在尝试将MVC2中的以下输入名称属性转换为razor中的等效属性。
name="<%=ViewData.TemplateInfo.GetFullHtmlFieldName(String.Empty)%>.Day"
在razor中我使用
name="@ViewData.TemplateInfo.GetFullHtmlFieldName(String.Empty).Day"
但是它在抱怨,因为它说"string'不包含'Day'的定义,并且没有扩展方法'Day'接受'string'类型的第一个参数"。该属性是一个日期时间属性,以上在MVC2中工作。
@(ViewData.TemplateInfo.GetFullHtmlFieldName(String.Empty)).Day
注意在方法调用的主要部分周围的()
。这告诉解析器只包含要编译的()
中的元素。其他的都被忽略了。这是必要的,因为代码片段的.Day
部分看起来像对编译器的属性调用,并被视为这样。
查看是否有效:@ViewData.TemplateInfo.GetFullHtmlFieldName("Day")
换句话说,你想干什么?
使用如下:
name="@(ViewData.TemplateInfo.GetFullHtmlFieldName(String.Empty) + ".Day")"