假设我有 2 个 MVC Web 项目(web1 和 web2)和 1 个包含共享视图(常见)的项目(使用 David Ebbo 的 razorgenerator)
web1 和 web2 都有一个 test.cshtml 文件。两个 test.cshtml 文件中的几个代码块完全相同。
我试图找出是否可以在不同项目中的几个 cshtml 文件之间共享声明性帮助器(@helper) 。因此,在我的 App_Code 中放置一个 cshtml 文件并没有帮助(我需要在每个 Web 项目中有 1 个,这显然不是我想要的)。
我知道我可以在我的“通用”项目中创建一堆共享的部分视图,但是创建 20 个 cshtml 文件似乎有点开销,每个文件都包含非常小的部分 html。
我知道我可以创建一个标准的辅助方法static string GenerateAPieceOfHtml(this HtmlHelper helper, ....)
(
有一阵子我以为我遇到了一个可以让我这样做的答案。但正如我在评论中所写,该代码没有为我编译。
我希望我的问题很清楚:)
[更新]
正如 csharpsi 在评论中所问的那样。我确实尝试了另一篇文章中的代码,但它没有为我吐出任何 HTML。由于我开始认为该答案可能会起作用,因为它有 13 个赞成票,所以我决定再试一次。
我再次没有得到任何输出,但后来我尝试了一点不同。成功!
我正在尝试这个(它不会在页面上吐出任何 html):
@{ new Test().DoSomething(Model); }
这是可以工作的版本:
@{
var html = new Test().DoSomething(Model);
@html
}
其他有效的版本:
@(new Test().DoSomething(Model))
这个问题我该怎么办?删除它?自己写答案?