【问题标题】:Declarative Helper Methods in Razor RTMRazor RTM 中的声明性辅助方法
【发布时间】:2011-02-14 01:31:13
【问题描述】:

我通过his blog 看到了 Scott Guthrie 关于辅助方法的帖子。

具体如下:

我看到一堆 RC 版本的 MVC 3 关于缺少辅助方法的帖子...我看到它的语法支持 (@helper) 被突出显示,但我在 /Views/Helpers/SomeHelper.cshtml 中有这个(定义为部分视图):

@helper SomeHelper(string text)
{
    if (text != null)
    {
        <text>
            @text
        </text>
    }
    else
    {
        <text>
            Unknown
        </text> 
    }
}

我是这样用的:

<div>
Helper with Text:
@SomeHelper("This is not null text.")
</div>

但是我得到 SomeHelper 没有定义......那么我在哪里搞砸了?我需要做些什么来将这些视图注册为帮助程序吗?

谢谢。

【问题讨论】:

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


    【解决方案1】:

    我通过在我的项目中创建一个App_Code 文件夹,然后在该文件夹中创建一个Helpers.cshtml 文件来完成此操作。

    然后,在.cshtml 视图中,使用:

    @Helpers.SomeHelper("This is not null text.")
    

    这是我发现在整个 Web 项目中创建共享的声明性帮助方法的唯一方法。如果还有其他人,我想听听他们。

    【讨论】:

    • 正确,这是目前可以在 MVC 中工作的唯一方法。未来将有一个更好的故事给全球帮助者。我们只是没有时间让它工作。
    • 即使使用 Web 应用程序模板?
    • @marcind ASP.NET MVC 4 怎么样?那里还有其他方法可以制作全局助手吗?
    • 请注意,标准的@Html-Helper 显然在 App_Code 中不起作用,请参阅stackoverflow.com/questions/4451287/…
    猜你喜欢
    • 1970-01-01
    • 2011-05-25
    • 1970-01-01
    • 1970-01-01
    • 2012-12-28
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 2014-05-06
    相关资源
    最近更新 更多