我在我的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>
}
答案 0 :(得分:8)
重新启动Visual Studio
仅靠清洁和重建是不够的,但对我有用的步骤是:
完成这些步骤后,Visual Studio Intellisense再次启动它。
答案 1 :(得分:6)
尝试构建/重建项目(如果您的助手位于App_Code
文件夹中)。
然后VS将识别帮助者。
答案 2 :(得分:5)
如果是razor helper(using @helper syntax),则应将其定位在\ App_Code
中的视图中我们可以通过保存我们的@helper方法来实现这一目标 位于\ App_Code目录中的.cshtml / .vbhtml文件 您在项目的根目录创建的。例如,在我之下 在\ App_Code文件夹中创建了一个“ScottGu.cshtml”文件 在文件中定义了两个独立的辅助方法(你可以拥有任何方法) 每个文件中的辅助方法数量):
如果它是更传统的html帮助器,则应通过向namespaces
中定义的<system.web.webPages.razor>
~\Views\Web.Config
元素添加记录来引用它。如果您只想在单视图中使用它,可以在视图上添加@using
指令。
答案 3 :(得分:1)
在任何视图中,您都可以像这样调用自定义Razor助手:
@Helpers.TextBox("some title", "someid", "default value", false)
这假设您的助手是在~/App_Code/Helpers.cshtml
内定义的。