Asp.Net MVC Идентифицировать сайт через URL - PullRequest
2 голосов
/ 15 января 2010

У меня есть приложение, которое будет поддерживать несколько сайтов. Сайт будет определяться на основе URL.

Например http://myapp/site/abc123/... а также http://myapp/site/xyz123/...

Код сайта задействует множество функций, например темы, доступные модули и т. Д. *

Вопросы:

1-) Мне нужно подтвердить правильность кода сайта и, если это не так, он должен направить пользователя на информационную страницу. Я смотрел на использование IRouteConstraint , это уместно? Есть ли другие / лучшие варианты?

2-) Есть ли ошибки с таким подходом (использование URL для идентификации сайта)? Есть ли лучший подход?

Решение

Я закончил тем, что создал Custom ActionFilter и проверил код сайта в событии OnActionExecuting. Это, кажется, работает хорошо и подходит лучше, чем IRouteConstraint.

Ответы [ 2 ]

2 голосов
/ 15 января 2010

Система, которую я внедрил, использует URL для идентификации уникального содержимого страницы на одном сайте, и процесс маршрутизации довольно прост. При этом вы можете рассмотреть возможность использования областей в вашем приложении MVC. С областями вы можете иметь на своем веб-сайте несколько разделов, каждый из которых имеет свою собственную структуру MVC, которая может работать частично независимо.

По сути, у вас будет одно базовое определение маршрутизации, которое устанавливает некоторые значения по умолчанию, а затем остальные «сайты» будут определять свои собственные маршруты, указывающие на контроллеры и представления в отдельном месте. Это довольно легко настроить, вам просто нужно убедиться, что вы используете версию 2.0 ASP.NET MVC. Вот достойное руководство по ASP.NET MVC Области и маршруты . В текущей модели, которую поддерживает MVC 2.0, у вас будет отдельный веб-проект для каждой области, но это необязательно. У Фила Хаакеда есть некоторый код для Области одиночного проекта ASP.NET MVC , если вы ищете другой пример этого метода, хотя лично вы, вероятно, получите больше пользы от первой статьи.

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

0 голосов
/ 11 августа 2010

Я закончил тем, что создал Custom ActionFilter и проверил код сайта в событии OnActionExecuting. Это, кажется, работает хорошо и подходит лучше, чем IRouteConstraint.

...