Razor支持通用扩展方法

Bri*_*ins 8 asp.net asp.net-mvc razor asp.net-mvc-3

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

@Html.TextBoxFor<SomeModel>(i => i.Name)
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

Mat*_*ton 9

怎么样:

@(Html.TextBoxFor<SomeModel>(i => i.Name))
Run Code Online (Sandbox Code Playgroud)

括号有帮助吗?


ame*_*vin 6

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

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

只有第一个在这里工作.

在Razor和ASP.NET MVC 3.0中有一个关于PluralSight的演练 在这个确切的主题上混合代码和标记部分.