Czy jest możliwe współdzielenie strony głównej między MVC i webforms?

Dodaję MVC do projektu, który ma wiele starszych stron webform. To działa dobrze. Jednak obecnie mam osobną stronę główną dla MVC i dla webforms. Dwie strony wzorcowe generują zasadniczo identyczne dane wyjściowe. Naprawdę chciałbym zabić webforms one i po prostu użyć strony wzorcowej MVC ze wszystkimi moimi stronami i pozostać suchym.

Nie bycie suchym ugryzło mnie już kilka razy, kiedy zapomniałam zmienić oba.

Próbowałem zrobić oczywisty sposób i tylko wskazując na atrybut strony wzorcowej webform content na stronie wzorcowej MVC. Powoduje to błąd mówiący, że wzorce MVC działają tylko z widokami MVC.

Wydaje się, że byłby to dość powszechny problem z mieszanymi projektami MVC i webform. Mój mistrz MVC nie robi nic z ViewData, więc nie widzę powodu, dla którego webforms nie mógłby ich użyć.

Author: Brant Bobby, 2009-05-08

3 answers

Możesz całkowicie udostępnić tę samą stronę wzorcową. Strona wzorcowa MVC musi po prostu wskazywać stronę wzorcową WebForms za pomocą atrybutu MasterPageFile. Dotyczy to stylów strony głównej formularzy WebForms do strony głównej MVC.

Używam tej konfiguracji w produkcji.

Deklaracja na mojej stronie wzorcowej MVC, wskazująca na stronę wzorcową Web Forms:

<%@ Master Language="C#" MasterPageFile="~/MasterPage/Site.Master"
AutoEventWireup="true" Inherits="System.Web.Mvc.ViewMasterPage" %>
Działa jak urok.
 26
Author: Peter J,
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
2009-05-08 19:52:31

This blog post przeprowadzi Cię przez niezbędne kroki, aby udostępniać strony wzorcowe Webform i MVC bez powielania lub bez powielania. Zawiera również przykładowy projekt, który można pobrać i uważam go za bardzo pomocny.

Jedna czkawka, na którą wpadłem, polegała na tym, że używałem kontrolki LoginStatus w nagłówku. LoginStatus musi znajdować się w formularzu, więc nie mogłem go użyć na głównej stronie wzorcowej(nie chcę skończyć z zagnieżdżonymi formularzami na wszystkich moich stronach MVC). Ale to była dość łatwa kontrola do wymiany z prostym blokiem kodu na mojej głównej stronie wzorcowej.

 8
Author: Ashley Tate,
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
2014-06-16 20:26:11

W aplikacji My webforms moja strona wzorcowa dziedziczy z "HLPUSD.Mądrze.SMARTMaster", który jest tylko przestrzenią nazw dla naszej aplikacji, a następnie nazwą klasy webform.

W moim projekcie MVC strona wzorcowa dziedziczy z " System.Www.Mvc.ViewMasterPage "

Ja myślę, że to ma coś z tym wspólnego?

 0
Author: Nick DeVore,
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
2009-05-08 19:40:56