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

VisualStudioを再起動します

クリーンアップと再構築だけでは不十分でしたが、私にとって有効な手順は次のとおりです。

  1. クリーンなソリューション
  2. Visual Studioを再起動します(2012)
  3. ソリューションを再構築する

これらの手順の後、VisualStudioIntellisenseはそれを再び取得しました。

于 2013-07-17T14:48:22.403 に答える
6

プロジェクトをビルド/再ビルドしてみてください(ヘルパーがApp_Codeフォルダーにいる場合)。

次に、VSはヘルパーを認識します。

于 2012-11-30T19:59:06.097 に答える
5

かみそりヘルパー(@helper構文を使用)の場合は、\App_Code内に配置されたビューで定義する必要があります

これを実現するには、プロジェクトのルートで作成した\App_Codeディレクトリ内に配置された.cshtml/.vbhtmlファイル内に@helperメソッドを保存します。たとえば、以下では、\ App_Codeフォルダー内に「ScottGu.cshtml」ファイルを作成し、ファイル内に2つの個別のヘルパーメソッドを定義しました(各ファイル内に任意の数のヘルパーメソッドを含めることができます)。

また、従来の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 に答える