kai*_*oon 32 c# asp.net-mvc view razor
我的视图中有多个页面共享的函数:
@functions
{
public HtmlString ModeImage(ModeEnum mode)
{
switch(mode)
{
case AMode: new HtmlString("<img etc..."); break;
// more etc...
}
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法将它放在一个单独的文件中,并将其包含在每个页面上,而无需将其复制并粘贴到每个页面.我知道我可以编写.cs文件并在每页访问它,但该函数确实涉及视图,如果此函数发生更改,我不想重新编译.
Sam*_*Sam 36
(这是现有答案的更详细版本.)
创建一个App_Code在MVC项目根目录中调用的文件夹(如果该文件夹尚不存在).在这里,创建一个空的剃刀视图,并将其命名为您想要的任何内容:

根据需要添加@helpers和/或static方法:
@helper ShowSomething()
{
<span>Something</span>
}
@functions
{
public static int CalculateSomething()
{
return 1;
}
}
Run Code Online (Sandbox Code Playgroud)
然后,首先按名称访问共享视图,从视图中使用它们:
@Shared.ShowSomething()
@Shared.CalculateSomething()
Run Code Online (Sandbox Code Playgroud)
Pai*_*ook 20
这听起来像你想要博客文章ASP.NET MVC3中描述的Razor @helper方法和 Scott Guthrie 在Razor中的@helper语法.
以下是概述...... "Razor中的@helper语法使您能够轻松创建可重用的辅助方法,这些方法可以在视图模板中封装输出功能.它们可以实现更好的代码重用,并且还可以促进更易读的代码."
| 归档时间: |
|
| 查看次数: |
24534 次 |
| 最近记录: |