2013-01-13 13 views
7

W projekcie, nad którym pracuję, nasza strona MVC4 używa kombinacji Razor i Angular.js. Jestem całkiem nowy w tworzeniu stron internetowych na front-end, więc nie jestem pewien, czy to dobry pomysł, czy nie. Jakie są zalety i wady ich mieszania i jakie są scenariusze, które wykorzystywałyby oba te elementy w sensie?Używanie Razor i Angular.js w środowisku MVC4

Odpowiedz

6

Mogę się podzielić naszym doświadczeniem z AngularJS + MVC4/Razor: Używamy maszynki Razor tylko do lokalizacji - więc dozwolona jest tylko funkcja Razor "@somekeyword". W rezultacie po stronie klienta otrzymaliśmy zlokalizowane szablony AngularJS. Pozwala to na maksymalne buforowanie (nawet przy użyciu CDN).

Jeśli chodzi o MVC4, używamy ASP.NET Web API do wysyłania danych JSON. Mamy rozszerzenie programisty do wysyłania odpowiedzi HAL (Hypermedia).

Daje to maksymalne oddzielenie i możliwość zmiany na inny serwer w razie potrzeby.

+0

Pracuję z tym samym stosem technologii. Czy wiesz, czy możliwe jest odwołanie się do strony szablonu w trasach Angular (np. '/ Somewhere/partials/mypartial.html'), a następnie wygenerowanie strony generowanej przez mechanizm Razor z'/somewhereelse/partials/mypartial.cshtml'? W ten sposób częściowe mogą zawierać przetłumaczone ciągi zasobów. Dzięki! – superjos

+3

@superjos Nie można tego w ten sposób odwołać, ale można utworzyć działanie kontrolera. 'public PartialViewResult Partial (nazwa łańcucha) {return PartialView (nazwa); } ' Następnie zadzwoń pod tym numerem: '/controller/Partial? Name = mypartial' –

+0

dzięki, to mniej więcej ścieżka, którą znalazłem. Ścieżki MVC, takie jak '/ Controllers/Templates/{action}/{templateName}' gdzie {action} służy do rozdzielenia obszarów * funkcjonalnych * i odpowiada folderowi w '/ Views/Templates /'. Wewnątrz każdego folderu znajdują się różne szablony. Niestandardowy ViewEngine jest potrzebny do mapowania akcji również do nazwy folderu. – superjos

Powiązane problemy