Можно ли повторно использовать ASP.Net MVC Views (* .aspx) в нескольких проектах ASP.net MVC? - PullRequest
9 голосов
/ 22 марта 2009

Я хотел бы повторно использовать * .aspx файлы в нескольких проектах ASP.Net MVC. Возможно ли это?

РЕДАКТИРОВАТЬ: предложение Энтони использовать систему контроля версий для обмена общими файлами между несколькими проектами решает мой вопрос на практике. К счастью, поскольку я использую Subversion, решение подходит мне. Однако, если я не использовал один, как эта проблема все еще может быть решена?

Можно ли сделать что-то подобное?

  1. Создание распространяемого пользовательского элемента управления с использованием функции предварительной компиляции веб-сайта VS. (Как описано здесь .)
  2. Ссылка на выходные сборки в необходимых проектах.
  3. Создание модифицированного механизма просмотра, который создает пользовательские элементы управления через параметр общего типа.

Затем мы создаем действия контроллера следующим образом:

public ActionResult Shared()
{
    return View<SharedPageOrUserControl>();
}

Это выглядит возможным?

Ответы [ 2 ]

9 голосов
/ 22 марта 2009

Одна идея, которую вы могли бы попробовать:

  1. Создание проекта (библиотеки классов) для ваших общих представлений
  2. Добавьте и установите для всех страниц разметки * .aspx значение Встроенные ресурсы на панели свойств
  3. Добавьте класс «EmbeddedViewResult», который наследуется от ActionResult - он будет содержать логику, обеспечивающую извлечение и доступность встроенных файлов .aspx на диске при вызове в конце действия контроллера.

Таким образом, в проектах, которые вы хотели использовать совместно используемыми представлениями, действия контроллера могли возвращать что-то вроде

public ActionResult Shared()
{
    return new EmbeddedViewResult("SharedLib.SharedPage");
}

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

2 голосов
/ 22 марта 2009

Обычно я решаю эту проблему с помощью контроля исходного кода. Большинство систем (даже VSS) позволяют вам совместно использовать файл в нескольких проектах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...