3

我在我的 MVC4 Web 应用程序中创建了一个自定义剃须刀助手,我需要在我的所有视图中都可以使用它。

在我所有的视图页面中,我似乎无法使用我的自定义助手。VS2012 不只是看到它。

请问我该如何解决?

编辑:它实际上在我运行页面时起作用,只是 VS 没有看到它。

这是我的助手,它位于我的 AppCode 文件夹中的 Helpers.cshtml 中。

@helper TextBox(string title, string id, string placeholder, bool required){    
<ul>
    <li>
        <label for="@id">@title</label>
    </li>
    <li>
        <input type="text" name="this" class="@if (@required) {<text>required</text>}" minlength="2" id="@id" placeholder="@placeholder" />
    </li>
</ul>
}
4

4 回答 4

10

重新启动 Visual Studio

仅清洁和重建是不够的,但对我有用的步骤是:

  1. 清洁溶液
  2. 重新启动 Visual Studio (2012)
  3. 重建解决方案

在这些步骤之后,Visual Studio Intellisense 再次拾取它。

于 2013-07-17T14:48:22.403 回答
6

尝试构建/重建项目(如果您的助手在App_Code文件夹中)。

然后VS会识别助手。

于 2012-11-30T19:59:06.097 回答
5

如果它是razor helper(使用 @helper 语法),你应该在 \App_Code 中的视图中定义它

我们可以通过将 @helper 方法保存在 .cshtml/.vbhtml 文件中来完成此操作,这些文件位于您在项目根目录中创建的 \App_Code 目录中。例如,下面我在 \App_Code 文件夹中创建了一个“ScottGu.cshtml”文件,并在文件中定义了两个单独的辅助方法(每个文件中可以有任意数量的辅助方法):

如果它是更传统的 html 帮助程序,您应该通过将记录添加到定义的namespaces元素来引用它。如果您只想在单个视图中使用它,您可以在视图顶部添加指令。<system.web.webPages.razor>~\Views\Web.Config@using

于 2012-09-26T12:04:36.193 回答
1

在任何视图中,您都可以像这样调用您的自定义 Razor 助手:

@Helpers.TextBox("some title", "someid", "default value", false)

这假设您的助手在~/App_Code/Helpers.cshtml.

于 2012-09-26T12:48:15.717 回答