Сайт на сайте с ASP.NET MVC - PullRequest
       21

Сайт на сайте с ASP.NET MVC

2 голосов
/ 08 декабря 2011

Я искал ответ на этот вопрос и нашел только две возможности, обе из которых мне не очень нужны.

У меня есть приложение ASP.NET MVC, котороемы собираемся добавить модуль в.Этот модуль может также использоваться совместно с другим продуктом, который у нас есть, поскольку он охватывает много общего.Я не хочу переписывать этот модуль (даже просто часть пользовательского интерфейса) для двух отдельных веб-сайтов, поэтому я изначально думал, что мы просто разработаем его как отдельный сайт (и поскольку наш пакет продуктов поддерживает единый вход черезв комплекте не было бы проблем с необходимостью снова войти на новый сайт).Тем не менее, мне сказали, что он должен выглядеть так, как будто он является частью существующего сайта, он должен находиться внутри собственной вкладки (на главной странице есть вкладки, чтобы показать вам, в каком разделе сайта вы находитесь), как это происходит в данный момент.marketed - интегрированный компонент существующего продукта.

Итак, я думал о том, как заставить этот сайт находиться во вкладке существующего сайта.

Я думал, что самая простая вещь - это просто iframe.У нас уже есть iframe на другой вкладке (хотя он является частью того же проекта - некоторые устаревшие веб-формы, использующие сторонний элемент управления, несовместимый с MVC), и он работает ... до определенного момента (на самом деле это скорееуродливое решение и план для следующего выпуска избавляется от него).Я бы предпочел не делать это снова.

Другая мысль заключалась в том, что внутри области содержимого вкладки просто есть элемент div, который я могу заменить содержимым с помощью вызовов AJAX по мере того, как пользователь проходит через работу этого нового модуля, так чтовсе выглядит так, как будто это один цельный сайт.Опять же, это наполняет меня страхом, так как я не думаю, что это будет работать очень хорошо ... и, конечно, мы проиграем в таких областях, как Google Analytics (мы либо проиграем полностью, либо нам придется поделать вручную).биты) и позволяет пользователям создавать закладки для страниц (единственный URL, который они видят, это первый, когда они открывают вкладку, поскольку все, что после этого состоит из вызовов AJAX.

Есть ли у кого-нибудь какие-либо предложения о том, какпродолжить это дальше? Есть ли способ, чтобы первое приложение ASP.NET MVC поставляло главные страницы, которые будет использовать второе? Или есть аналогичный механизм в обратном направлении, где я могу заставить первое приложение ASP.NET MVC использовать второев качестве поставщика контента на первые мастер-страницы?

Или мои реалистичные варианты вызовов IFrame или AJAX?

Ответы [ 2 ]

1 голос
/ 09 декабря 2011

Колин

У меня очень похожее требование к вам с дополнительной необходимостью запускать оба сайта в одном пуле приложений. Я на самом деле смог придумать концептуальное доказательство, используя переносные зоны . Не супер элегантно, но я верю, что это поможет.

Пожалуйста, дайте мне знать, если вы найдете лучший способ.

0 голосов
/ 09 декабря 2011

Другой вариант - создать контроллер и логику для общего модуля в его собственной библиотеке.Приложения ASP.Net MVC прекрасно справляются с контроллерами, находящимися в отдельных библиотеках.

Недостатком является то, что любое приложение, использующее этот «общий» модуль, должно иметь свои собственные представления, а это означает, что вам придется дублировать представления и поддерживатьотдельно, но, по крайней мере, вы не будете дублировать логику контроллера.

Это то, что я сделал в аналогичном сценарии.Я взглянул на включение некоторых скомпилированных представлений в «разделяемую библиотеку» в соответствии с этим примером , но, поскольку вы не могли включить скрипты и изображения, это не стоило усилий.

...