C# .cshtml(Razor视图代码)与.cs中的Html帮助程序扩展

C# .cshtml(Razor视图代码)与.cs中的Html帮助程序扩展,c#,asp.net-mvc,asp.net-mvc-3,razor,C#,Asp.net Mvc,Asp.net Mvc 3,Razor,在.cshtml与.cs文件中编写帮助程序扩展方法时需要考虑哪些因素 我在.cs文件中编写时看到的一个优点是,当视图引擎发生更改时,我们不必再次重写帮助程序 除此之外,.cs中的helpers还有其他优势吗?helpers的另一个优势是,它们是可单元测试的,这就是它们最适合我的地方。当然,它们可以跨不同的视图引擎进行移植也是一个很大的好处。例如,我有新的ASP.NET MVC 3 Razor应用程序,但仍然使用ASP.NET MVC 2应用程序中的一些旧WebForms视图。因此,我在.cs文件

在.cshtml与.cs文件中编写帮助程序扩展方法时需要考虑哪些因素

我在.cs文件中编写时看到的一个优点是,当视图引擎发生更改时,我们不必再次重写帮助程序


除此之外,.cs中的helpers还有其他优势吗?

helpers的另一个优势是,它们是可单元测试的,这就是它们最适合我的地方。当然,它们可以跨不同的视图引擎进行移植也是一个很大的好处。例如,我有新的ASP.NET MVC 3 Razor应用程序,但仍然使用ASP.NET MVC 2应用程序中的一些旧WebForms视图。因此,我在.cs文件中的新助手在两个视图中都工作得非常好

您可以查看嵌入的
@helper
,以获得一些非常小且孤立的HTML,这些HTML永远不会离开给定视图的边界。对于其他所有内容,请使用真实的帮助程序、编辑器/显示模板、分区等


老实说,我从来没有在我的任何代码库中使用过
@helper
,我不能说我缺少了一些功能。

在.cs中使用helpers的另一个优点是它们是可单元测试的,这就是它们最适合我的地方。当然,它们可以跨不同的视图引擎进行移植也是一个很大的好处。例如,我有新的ASP.NET MVC 3 Razor应用程序,但仍然使用ASP.NET MVC 2应用程序中的一些旧WebForms视图。因此,我在.cs文件中的新助手在两个视图中都工作得非常好

您可以查看嵌入的
@helper
,以获得一些非常小且孤立的HTML,这些HTML永远不会离开给定视图的边界。对于其他所有内容,请使用真实的帮助程序、编辑器/显示模板、分区等

老实说,我从来没有在我的任何代码库中使用过
@helper
,我不能说我缺少了一些功能