2015-05-12 14 views
5

Mam internetowej opracowany w ASP.NET Web Forms z .NET Framework 4.5.1Dodaj ASP.NET MVC obszar do ASP.NET Web Forms istniejącego projektu

Mamy wymóg, aby zbudować replikę strony na urządzenia mobilne (responsywne w tym przypadku nie działa dla nas), więc doszedłem do myślenia o tej części witryny za pomocą ASP.NET MVC.

Uwaga Przed kontynuowaniem: Wiem, że istnieje kilka odpowiedzi na pytania na ten temat, w internecie istnieje kilka artykułów o tym, jak je wymieszać. Ale żaden z nich nie działa dla mnie, ponieważ próbuję użyć One ASP.NET Framework, aby uniknąć przechodzenia przez wiele ręcznej pracy.

Więc co zrobiłem było:

  1. Dodaj Pakietu Nuget dla MVC w moich WebForms ASP.NET projektu
  2. Po dodaniu I skonfigurowany MVC Area zawierać mój telefon witryny w MVC

struktura projektu wygląda następująco:

Project Structure

I tu pojawia się mój problem: jeśli uruchomię którąkolwiek ze stron ASPX, działają poprawnie. Kiedy idę do/Mobile/Home/Index, mówi, że zasób nie został znaleziony. Podejrzewałem, że jest tak, ponieważ folder App_Start nie istnieje w moim projekcie i nie ma tam pliku Starup.cs, więc witryna nie ma informacji o routingu MVC.

Pytanie

  1. Jak mogę dodać folder App_Start i Starup.cs o wartościach domyślnych bez cierpienia proces (unikanie kopiuj/wklej lub procesów manualnych)?

  2. Jak mogę to zrobić (projekty typu www) na żywo razem, ponieważ mówią, że można to zrobić za pomocą One ASP.NET Framework ?.

Dzięki!

Odpowiedz

5

Musisz zarejestrować obszary w Global.asax (dodać je za pomocą opcji menu Dodaj element, jeśli nie istnieje):

public class Global : HttpApplication 
{ 

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

    } 

} 

pozwoli to link do Mobile @localhost/{ProjectName}/Mobile/Home

+0

więc, nie ma potrzeby, aby utworzyć Starup.cs? Jeśli potrzebuję pakietu BundleConfig.cs, muszę sam go utworzyć? –

+1

Tak, musisz utworzyć statyczny plik konfiguracyjny dla każdego aspektu funkcjonalnego MVC, który chciałbyś użyć w podprojekcie. –

+1

@FelipeCorrea Właśnie uruchomiłem test z pustym projektem asp, a wszystko, czego potrzebujesz, to rejestracja obszaru w pliku Global.asax, który dodajesz do głównego projektu, jeśli jeszcze nie istnieje. –

0

Jeśli miałem zamiar zmieszać dwa ramach tego samego projektu, chciałbym zacząć od projektu MVC, i strony ASP.NET być we własnym podkatalogu.

Ale może powinieneś rozważyć posiadanie 2 oddzielnych projektów, po jednym na "aplikację".

Teraz oddzielna aplikacja może zostać wdrożona w MainApplicationFolder \ SomeSubfolder.

Oczywiście, możesz również wtedy warto rozważyć coś jak następuje za linki następnie:

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

Dostaję twój punkt, chociaż myślę, że dobrze jest skorzystać z możliwości tego frameworka. Jeśli możesz ich użyć razem i dotyczy problemu, który próbujesz rozwiązać, po co komplikuje to oddzielanie stylów, odwołań do javascript i wdrożeń? Mówią (Microsoft), że One ASP.NET Framework pozwala na rozpoczęcie z dowolną technologią, a później na integrację, w zależności od tego, co chcesz: Web API, MVC i Web Forms. Chcę zrobić to wykorzystując te możliwości. –

Powiązane problemy