Razor支持通用扩展方法

时间:2011-02-11 04:39:55

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

关于Razor视图引擎,假设我想渲染Html.TextBoxFor<SomeModel>(i => i.Name),内联语法似乎不像以下那样工作:

@Html.TextBoxFor<SomeModel>(i => i.Name)

这似乎不起作用,因为它将泛型解释为HTML标记。我可以使用代码块方法,但那么输出内容的最佳方法是什么?从这个方法返回的HTML字符串,我是响应它还是写它,还是有它的语法,或者是什么方法?

感谢。

2 个答案:

答案 0 :(得分:9)

怎么样:

@(Html.TextBoxFor<SomeModel>(i => i.Name))

括号有帮助吗?

答案 1 :(得分:6)

我发现有四种方法可以让razor明确解析(而不是试图弄清楚要做什么):

 - @(some code)  (this is the method used by @Matt Hamilton) 
 - Html.Raw("some encoded text") 
 - <text>Some encoded text</text>
 - @@

这里只有第一个可以使用。

Razor和ASP.NET MVC 3.0中有a walkthrough on PluralSight在这个确切的主题上混合代码和标记部分。