MVC Razor助手在当前上下文中不存在

koo*_*e98 3 asp.net-mvc razor visual-studio-2012

我在我的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>
}
Run Code Online (Sandbox Code Playgroud)

小智 10

重新启动Visual Studio

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

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

完成这些步骤后,Visual Studio Intellisense再次选择它.

  • **提示**如果文件夹已创建,您真的应该重新启动Visual Studio (4认同)

Saf*_*ain 6

尝试构建/重建项目(如果您的帮助程序在App_Code文件夹中).

然后VS将识别帮助者.


arc*_*hil 5

如果它是剃刀助手(使用@helper语法),则应在放置在\ App_Code中的视图中定义它

我们可以通过在.cshtml/.vbhtml文件中保存我们的@helper方法来实现这一点,这些文件位于您在项目根目录下创建的\ App_Code目录中.例如,下面我在\ App_Code文件夹中创建了一个"ScottGu.cshtml"文件,并在文件中定义了两个独立的帮助器方法(每个文件中可以有任意数量的辅助方法):

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