3

VB.NET MVC3 のフォーム内でカスタム セクションをレンダリングしようとしていますか? セクションはマスター レイアウトにあり、デフォルト設定されていますが、特定のビューでカスタム セクションを作成したい

私が試したとき

@Using Html.BeginForm()
..my markup
   @Section footerMenu
      ..custom footer markup
   End Section
End Using

編集:セクションは私の_Layout.vbhtmlで宣言されています

<div id="footer">      
    @If (IsSectionDefined("footerMenu")) Then
        @RenderSection("footerMenu")    
    Else
    ...default markup    
    End If
</div>

次のエラーが表示されます。

「@」文字の後に予期しない「セクション」キーワードがあります。コード内では、"Section" などの構造体の前に "@" を付ける必要はありません。

もちろん、「@」を削除すると、別のエラーが発生します。

コンパイラ エラー メッセージ: BC30451: 'セクション' が宣言されていません。保護レベルにより、アクセスできない場合があります。

これは可能ですか?

4

2 に答える 2

3

他の場所で定義sectionし、フォームにレンダリングします。ここで行っているのは、エラーの原因となっているフォーム内での定義です。 section

そして、カスタムのものを作成する必要があります(基本的に物事をシンプルにするため)

したがって、必要なのは次のようなものです。

@Using Html.BeginForm()
..my markup
   @RenderSection("footerMenuCustom") 
End Using

他の場所 (部分的なビューである可能性があります)

@Section footerMenuCustom 
... Markup...
End Section
于 2012-06-20T16:53:55.307 に答える
1

レイアウト ページで、isRequired値が であることを指定しますfalse。一部の詳細ページからコンテンツを提供しなくてもエラーがスローされないようにするため

@RenderSection("footerMenu",false) 
于 2012-06-20T17:09:54.450 に答える