我正在尝试将MVC2中的以下输入名称属性转换为剃刀中的等效项。
name="<%=ViewData.TemplateInfo.GetFullHtmlFieldName(String.Empty)%>.Day"
在剃须刀中我正在使用
name="@ViewData.TemplateInfo.GetFullHtmlFieldName(String.Empty).Day"
但它抱怨,因为它说“字符串”不包含'Day'的定义,并且没有扩展方法'Day'接受'string'类型的第一个参数可以找到“。该属性是一个日期时间属性,上面的工作在MVC2。
非常感谢任何帮助。
答案 0 :(得分:3)
@(ViewData.TemplateInfo.GetFullHtmlFieldName(String.Empty)).Day
注意方法调用主要部分周围的()
。这告诉解析器只包含要编译的()
内的元素。其他任何事都被忽略了。这是必要的原因是因为您的代码段的.Day
部分看起来像是对编译器的属性调用,并且被视为这样。
答案 1 :(得分:0)
查看是否有效:@ViewData.TemplateInfo.GetFullHtmlFieldName("Day")
另一方面,你想做什么?
答案 2 :(得分:0)
使用以下内容:
name="@(ViewData.TemplateInfo.GetFullHtmlFieldName(String.Empty) + ".Day")"