Как легко добавить множество «глупых» html-страниц в приложение ASP.NET-MVC - PullRequest
1 голос
/ 22 января 2009

Допустим, я конвертирую целую кучу страниц контента - тупой HTML - в модель MVC.

Я бы хотел поместить все простые HTML-файлы в каталог и «найти» их на основе контроллера.

Похоже, что этот тип 'HomeController' в стандартном ASP.NET-MVC делает, но я должен явно добавить каждую страницу.

[HandleError]
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            ViewData["Title"] = "Home Page";
            ViewData["Message"] = "Welcome to ASP.NET MVC!";

            return View();
        }

        public ActionResult About()
        {
            ViewData["Title"] = "About Page";

            return View();
        }

        public ActionResult About2()
        {
            ViewData["Title"] = "About Page 2";

            return View();
        }
    }

Я добавил страницу About2.aspx в каталог «Home», и мне пришлось добавить метод About2 в HomeController, чтобы включить URL http://localhost:51234/Home/About2.

Но допустим, у меня есть 50 HTML-страниц, и я хочу найти их по URL-адресу.

Как я мог этого достичь?

Ответы [ 2 ]

3 голосов
/ 22 января 2009

Обновите обработчик маршрута в global.asax, чтобы игнорировать маршрутизацию для ваших статических страниц. Чтобы сделать это проще, я бы поместил их в отдельный каталог.

routes.IgnoreRoute("static/myfile.htm");
0 голосов
/ 24 января 2009

Давным-давно в далекой галактике я отправлял патч монорельсу Castle для реализации функциональности DefaultAction , причина которого заключалась в том, чтобы выполнить почти то же самое, что вы хотели сделать. Разница в том, что дизайнерам по-прежнему требовался доступ к динамическим данным, таким как имена пользователей и т. Д. В представлениях. Похоже, ConventionController в MVC Contrib поддерживает те же функции.

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

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