Страница MVC3 - IsPostback как функциональность - PullRequest
9 голосов
/ 26 ноября 2011

Я вызываю один и тот же контроллер много раз из представления _Layout.cshtml. Таким образом, в этом контроллере, как я могу обнаружить во время выполнения, если это все та же страница, которая рендерится, или выполняется новый запрос страницы?

В asp.net вы можете использовать ispostback, чтобы понять это. Как узнать, выполняется ли новый запрос для страницы в MVC3?

Спасибо

Ответы [ 2 ]

18 голосов
/ 26 ноября 2011

На MVC такого мнения нет. У вас есть действия, которые могут обрабатывать POST, GET или оба. Вы можете отфильтровать то, что может обработать каждое действие, используя атрибуты [HttpPost] и [HttpGet].

В MVC самое близкое к IsPostBack, которое вы можете получить в вашем действии:

public ActionResult Index() 
{
    if (Request.HttpMethod == "POST") 
    {
        // Do something
    }

    return View();
}

Таким образом,

[HttpPost]
public ActionResult Create(CreateModel model) 
{
    if (Request.HttpMethod == "POST") // <-- always true
    {
        // Do something
    }

    return RedirectToAction("Index");
}    
3 голосов
/ 08 декабря 2011

Могу ли я также предложить вам реализовать его как свойство в базовом классе контроллера, например:

protected bool IsPostback 
{
    get { return Request.HttpMethod == "POST"; }
}

-Marc

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