簡體   English   中英

將ASP.NET MVC區域添加到ASP.NET Web窗體現有項目

[英]Add ASP.NET MVC Area to ASP.NET Web Forms existing project

我有一個使用.NET FrameWork 4.5.1在ASP.NET Web窗體中開發的網站

我們需要為移動設備構建站點的副本(在這種情況下,響應式不適用於我們),因此我最終想到了用ASP.NET MVC來覆蓋站點的這一部分。

在繼續之前,請注意: 我知道有關此主題的一些問題,並且在網絡上有一些有關如何混合它們的文章。 但是它們都不適合我,因為我試圖使用One ASP.NET Framework來避免進行大量的手工工作。

因此,我所做的是:

  1. 在我的ASP.NET WebForms項目中為MVC添加Nuget程序包
  2. 添加后,我將MVC區域配置為將我的移動網站包含在MVC中

項目結構如下所示:

項目結構

這是我的問題:如果我運行任何ASPX頁面,它們都可以正常運行。 當我轉到/ Mobile / Home / Index時,它說找不到資源。 我懷疑這是因為App_Start文件夾在我的項目中不存在,並且Starup.cs也沒有,所以網站對MVC路由一無所知。

  1. 如何添加具有默認值的App_Start文件夾和Starup.cs而不經歷該過程(避免復制/粘貼或手動過程)?

  2. 我如何使這兩個(網絡類型的項目)一起生活,就像他們說的那樣可以使用One ASP.NET Framework完成?

謝謝!

您需要在Global.asax中注冊區域(如果不存在,請通過“添加項目”菜單選項添加區域):

public class Global : HttpApplication
{

    protected void Application_Start(object sender, EventArgs e)
    {
        AreaRegistration.RegisterAllAreas();

    }

}

這將啟用到您的Mobile @ localhost/{ProjectName}/Mobile/Home

如果要在同一個項目中混合使用兩者,那么我將從MVC項目開始 ,並將ASP.Net頁面放在其自己的子文件夾中。

但是也許您應該考慮擁有2個單獨的項目,每個“應用程序”一個。

因此,現在可以將一個單獨的應用程序部署到MainApplicationFolder \\ SomeSubfolder。

當然,然后,您可能還需要考慮以下類似的鏈接:

@VirtualPathUtility.ToAbsolute("~/SomeController/SomeAction")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM