Правильный подход, чтобы избежать рендеринга вида в действии - PullRequest
1 голос
/ 17 мая 2011

В настоящее время я использую сообщение ajax обратно для действия, чтобы создать новый объект базы данных, а затем возвращаю визуализированный html для представления этого объекта. Затем я вставляю этот html на страницу.

Мне было интересно, так как MVC действительно позволяет вам рендерить представления в HTML изнутри контроллеров, если есть более лучший (или более правильный) подход к проблеме.

(в настоящее время я использую этот код , чтобы отобразить представление как HTML в действии).

Любые идеи приветствуются.

Ответы [ 3 ]

4 голосов
/ 17 мая 2011

На самом деле есть.Просто верните частичное представление.

public ActionResult AjaxStuff()
{
    // do whatever
    var model = ...;
    return PartialView(model);
}
2 голосов
/ 17 мая 2011

Это правда, что вы можете визуализировать его с помощью PartialView или сделать его настраиваемым через JSON (PartialView просто намного проще!).

Это действительно зависит от вашей реализации и выбора в отношении постепенного ухудшения качества.

То, что я обычно делаю, это:

[HttpGet]
public ActionResult SignIn()
{
    //Check if it is an AJAX request
    if (Request.IsAjaxRequest())
        return PartialView();
    else
         return View();
}

Так что можно получить свой торт и съесть его тоже.

По правде говоря, существуют разные способы получения этого представления с сервера.Вы можете использовать библиотеку asp.net mvc ajax js, использовать .getJSON или .ajax или даже сделать это через JQuery, используя .load: http://api.jquery.com/load/

0 голосов
/ 17 мая 2011

Вы можете визуализировать PartialView в качестве другого предложенного ответа или вернуть JsonResult и заполнить свой HTML-код из данных JSON. Ваш звонок.

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