2011-01-24 15 views
1

ASP.NET 2010 MVC2システムからMVC3へのアップデートがあります。また、変換ツールを使用して、進行中のMVC2 WebサイトをMVC3に更新しました。私は、現在のページをマスターページを含む.aspxとして残しました。新しい.cshtmlビューを追加しました。新しいカミソリベースのビューを除いて、すべてのページが機能します。私は次のエラーを取得する変換されたASP.NET MVC 3のWebサイトで新しいRazorリューズが表示されない

それが存在しないか、有効なページではありませんんので

ファイル「〜/ビュー/共有/ Site.Master」は、レンダリングすることができませんでした。

.aspxページを表示するのでOKです。どのように私は

<asp:ContentPlaceHolder ID="mainContent" runat="server"> 

で.cshtmlページを表示するには、正しい文を追加しない私は、これは、上記のエラーメッセージを表示します

@RenderBody() 

を試してみました。私はまた、

<%: RenderBody() %> 

を試してみましたが、しかし、これはエラーを与える

"RenderBody" は、現在のコンテキスト

スタックトレースは以下のとおりであるに存在しない名前:

[HttpException (0x80004005): The file "~/Views/Shared/Site.Master" could not be rendered, because it does not exist or is not a valid page.] 
    System.Web.WebPages.Util.EnsureValidPageType(WebPageBase page, String virtualPath) +98735 
    System.Web.WebPages.WebPageBase.PopContext() +166 
    System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +95 
    System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) +220 
    System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer) +115 
    System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +303 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) +13 
    System.Web.Mvc.<>c__DisplayClass1c.<InvokeActionResultWithFilters>b__19() +23 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +260 
    System.Web.Mvc.<>c__DisplayClass1e.<InvokeActionResultWithFilters>b__1b() +19 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +177 
    System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +343 
    System.Web.Mvc.Controller.ExecuteCore() +116 
    System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +97 
    System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +10 
    System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +37 
    System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +21 
    System.Web.Mvc.Async.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _) +12 
    System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62 
    System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +50 
    System.Web.Mvc.SecurityUtil.<GetCallInAppTrustThunk>b__0(Action f) +7 
    System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action) +22 
    System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +60 
    System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9 
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8841105 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184 

答えて

3

RazorページとASP.NET WebFormsマスターページを混在させて一致させることはできませんes。

参照:Is Razor view with ASPX .Master page possible?

編集:まあ、ありません自動的に。 http://eworldui.net/blog/post/2011/01/07/Using-Razor-Pages-with-WebForms-Master-Pages.aspx

+0

ありがとうございました。私は以前のすべての質問をチェックしたと思ったが、私の検索(MVC3 Razor)はあなたが指している質問を表示しなかった。私は今、すべてを.cshtmlに切り替えるか、.aspxページを使い続けるかについて考える必要があります。 – xiecs

0

ASP.NET MVC 3アプリケーションプロジェクトでのマスターページのカミソリ相当をロードするために使用されている2つのファイルがありますが、彼らは

プロジェクトのルートで_ViewStart.cshtmlと_layoutです.cshtmlファイルをViews/Sharedフォルダに保存します。 _Layout.cshtmlはあなたのマスターページです。コード

@RenderBody() 

Webフォームのマスターページのコンテンツプレースホルダタグに似ています。マスターページをかみそりの構文に変換し、ソースコードを_Layout.cshtmlに配置する必要があります。別のレイアウトビューをロードする場合は、コンテンツビューに次のコードを追加します。

@{ 
    ViewBag.Title = "Content Page"; 
    Layout = "~/Views/Shared/_MyLayout.cshtml"; 
} 

これが役立ちます。