ASP.NET MVC 4 obszary w oddzielnych projektach nie działa (widok nie znaleziono)
Próbowałem stworzyć prosty proof-of-concept ASP.NET strona internetowa MVC 4 wykorzystująca obszary w oddzielnych projektach.
Próbowałem po tutoriale: http://bob.archer.net/content/aspnet-mvc3-areas-separate-projects (aplikacja nie działa w katalogu wirtualnym... Używam IIS). Mam nadzieję, że jest lepszy sposób niż wirtualne katalogi.
Potem wypróbowałem ten tutorial: http://forums.asp.net/t/1483660.aspx/1 Ale nie ma elementu "AreasManifestDir" w *.csproj obszaru projekt (i dostał błąd "widok' Index 'lub jego główny nie został znaleziony lub żaden silnik widoku nie obsługuje wyszukiwanych lokalizacji")
Czy jest jeszcze wsparcie w ASP.NET dla MVC 4? Ponieważ znalazłem taką odpowiedź, że można ją usunąć w przyszłości: jakie są plusy i minusy obszarów realizowanych jako pojedyncze projekty vs wiele projektów w asp.net mvc
Nie znalazłem żadnego how-to dla MVC4.
Struktura rozwiązania jest prosta:
Solution 'MvcAreasMultiProject'
Areas [Directory]
Admin [Project]
Models
Views
Controllers
Routes.cs [Examples]
MvcAreasMultiProject [MainProject]
- References Admin project
M.V.C
Trasy.cs admina projekt:
namespace Admin
{
public class Routes : AreaRegistration
{
public override string AreaName { get { return "Admin"; } }
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_Default",
"Admin/{action}/{id}",
new { controller = "Admin", action = "Index", id = "" },
new[] { "Admin.Controllers" }
);
}
}
}
Dzięki za pomoc!
1 answers
Możesz użyć pakietu RazorGenerator do osadzenia swoich widoków w osobnym zestawie. Oto kroki, aby to zrobić:
- Zainstaluj rozszerzenie
Razor Generator
Visual Studio (Narzędzia - > Rozszerzenia i aktualizacje...) - Utwórz nowy ASP.NET aplikacja MVC 4 korzystająca z pustego szablonu.
- Dodaj nowy projekt biblioteki klas do rozwiązania o nazwie
AreasLibrary
(Możesz również użyć ASP.NET szablon projektu MVC w celu uzyskania Intellisense w Razor views) - zainstaluj
RazorGenerator.Mvc
NuGet do projektuAreasLibrary
. -
Dodaj kontroler wewnątrz projektu
AreasLibrary
(~/Areas/Admin/Controllers/HomeController.cs
):public class HomeController: Controller { public ActionResult Index() { return View(); } }
-
Dodaj odpowiedni Widok (
~/Areas/Admin/Views/Home/Index.cshtml
):@* Generator: MvcView *@ @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>View1</title> </head> <body> <div> Index view </div> </body> </html>
We właściwościach widoku Ustaw
Custom Tool
naRazorGenerator
.-
Wewnątrz biblioteki klas dodaj
~/Areas/AdminAreaRegistration.cs
:public class AdminAreaRegistration : AreaRegistration { public override string AreaName { get { return "Admin"; } } public override void RegisterArea(AreaRegistrationContext context) { context.MapRoute( "Admin_Default", "Admin/{action}/{id}", new { controller = "Home", action = "Index", id = "" } ); } }
Pozostaje tylko odwołać się do biblioteki klas w głównym MVC podanie.
Numer referencyjny: http://blog.davidebbo.com/2011/06/precompile-your-mvc-views-using.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-12 18:22:24