MVC4 - ContextDependentView - Что это значит? - PullRequest
10 голосов
/ 01 февраля 2012

Я только начал использовать MVC4, и у первого метода действия, на который я смотрю, есть что-то новое.Я проверил интернет и ничего не могу найти по этому поводу:

public ActionResult LogOn()
        {
            return ContextDependentView();
        }

Кто-нибудь знает, что такое ContextDependentView?

Что-то новое для меня.

1 Ответ

11 голосов
/ 01 февраля 2012

Его цель - упростить результаты действий View или PartialView для действий Login и Register.

    private ActionResult ContextDependentView()
    {
        string actionName = ControllerContext.RouteData.GetRequiredString("action");
        if (Request.QueryString["content"] != null)
        {
            ViewBag.FormAction = "Json" + actionName;
            return PartialView();
        }
        else
        {
            ViewBag.FormAction = actionName;
            return View();
        }
    }

Как и другие вещи в MVC, это делается по соглашению ... соглашение здесь, когда Request.QueryString содержит ?content=xxxx, он добавляет "Json" к имени действия, заполняет его свойством ViewBag и возвращает частичную версию View.Например:

Запрос на /Account/Login?content=test будет преобразован в ViewBag.FormAction = "JsonLogin";, а затем будет возвращен частичный.

Запрос на /Account/Login не имеет строки запроса содержимого, поэтому его действие формы остаетсяViewBag.FormAction = "Login";

...