Asp.Net Mvc - переключиться с сервера на Ajax - PullRequest
2 голосов
/ 05 февраля 2010

Существует ли чистый способ управления моим веб-сайтом Asp.Net Mvc, чтобы они оба работали правильно, если JavaScript включен / отключен. Потому что сейчас я должен сделать такой взлом, чтобы оба работали. Я думаю, что это не делает код легко обслуживаемым и многократно используемым ...

if (Request.IsAjaxRequest()) 
{                        
    return PartialView("SignUpForm", user);
}
else 
{
    return View("SignUp", user);
}

1 Ответ

0 голосов
/ 05 февраля 2010

В этом ответе я обрисовал метод модального окна, который работает без JavaScript; без изменений кода, если вы хотите отключить все модальные и javascript-функции.

Простые представления ASP.NET MVC CRUD, открывающиеся / закрывающиеся в диалоговом окне JavaScript UI

Биты, которые я считаю наиболее важными для вас, являются пользовательскими ViewEngine:

public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache)
{
    //you might have to customize this bit
    if (controllerContext.HttpContext.Request.IsAjaxRequest())
        return base.FindView(controllerContext, viewName, "Modal", useCache);

    return base.FindView(controllerContext, viewName, "Site", useCache);
}

Этот код отключает JavaScript и окружающий шаблон, загружая отдельную мастер-страницу, если запрос от ajax или нет. Переключая главную страницу в свой собственный ViewEngine, вы избегаете кода if (Ajax) во всех ваших контроллерах и сохраняете его в чистоте.

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