私のasp.net MVC 3アプリケーションでは、ネストされたレイアウトがあります。asp.net MVC 3カミソリレイアウトエラー
http://blogs.msdn.com/b/marcinon/archive/2010/12/15/razor-nested-layouts-and-redefined-sections.aspx
私の主なレイアウトページis_MasterLayout.cshtml、その後、ネストされたレイアウトページ_fullLayout.cshtml:私は、次のリンクをたどってきました。 _fullLayout.cshtmlで、私は持っています:
@this.RedefineSection("BodyTitle")
@this.RedefineSection("Showcase")
しかし、私はこれらの行に乗っています。エラーは次のとおりです。
コンパイルエラー
説明:エラーは、この要求を処理するために必要なリソースのコンパイル中に発生しました。以下の特定のエラーの詳細を確認し、ソースコードを適切に変更してください。
コンパイラエラーメッセージ:CS1928:「ASP._Page_Views_Shared__fullLayout_cshtmlは」「RedefineSection」と最高の拡張メソッドのオーバーロード「SectionExtensions.RedefineSection(System.Web.WebPages.WebPageBase、文字列)」の定義が含まれていないいくつかの無効な引数を持っています
ソースエラー:
ライン9:
ライン10:} 11行目:this.RedefineSection( "ショーケース") ライン13 @:this.RedefineSection( "BodyTitle") ライン12 @ @RenderBody()
私のヘルパーメソッドは次のように定義されています:
はpublic static class SectionExtensions
{
private static readonly object _o = new object();
public static HelperResult RenderSection(this WebPageBase page, string sectionName, Func<object, HelperResult> defaultContent)
{
if (page.IsSectionDefined(sectionName))
return page.RenderSection(sectionName);
else
return defaultContent(_o);
}
public static HelperResult RedefineSection(this WebPageBase page, string sectionName)
{
return RedefineSection(page, sectionName, defaultContent: null);
}
public static HelperResult RedefineSection(this WebPageBase page, string sectionName, Func<object, HelperResult> defaultContent)
{
if (page.IsSectionDefined(sectionName))
page.DefineSection(sectionName,() => page.Write(page.RenderSection(sectionName)));
else if (defaultContent != null)
page.DefineSection(sectionName,() => page.Write(defaultContent(_o)));
return new HelperResult(_ => { });
}
}
ソリューションを提案してください。
よろしく、 アシフハミード
私はこれを次のように使用しました。RedefineSection(「BodyTitleは」、
デフォルトSubLayoutタイトル
@)this.RedefineSection @ (デフォルトSubLayoutショーケース
@「ショーケース」、)それでも同じエラー – DotnetSparrow1に言及するには、この、私はコンテンツページでこのセクションを定義していませんでした。 – DotnetSparrow
@RenderSection( "TitleSection"、必須:false) マスターレイアウトの@RenderBody() – Neha