если я начать на Detail странице:, как я могу держать свой URL, когда моя проверка неудачу в ASP.NET MVC контроллер действий
http:\\www.mysite.com\App\Detail
У меня есть действие контроллера под названием Update, который обычно называют redirectToAction Назад к подробнее страница. но у меня есть ошибка, которая попадает в валидацию, и мне нужно вернуться до перенаправления (, чтобы избежать потери всего моего ModelState). Вот мой код контроллера:
public override ActionResult Update(Application entity)
{
base.Update(entity);
if (!ModelState.IsValid)
{
return View("Detail", GetAppViewModel(entity.Id));
}
return RedirectToAction("Detail", new { id = entity.Id })
, но теперь я вижу, вид с сообщениями об ошибках валидации (как я использую HTML.ValidationSummary()), но URL выглядит следующим образом:
http:\\www.mysite.com\App\Update
является в любом случае я могу избежать изменения URL-адреса без какого-либо взлома помещения modelstate в некоторые временные переменные? Есть ли лучшая практика здесь, поскольку единственные примеры, которые я видел, ставят ModelState в некоторых tempdata между звонками redirectToAction.
@Bikal Gurung - спасибо. ,Я всегда думал, что это была странная практика, поскольку имя действия на самом деле не представляет то, что вы делаете, но я согласен, что это решит проблему, о которой я спрашиваю о – leora
, которую вы можете исправить с помощью [ActionName («Подробности») ] public ActionResult WhatEverMethodName() Теперь этот метод будет соответствовать «/ Details» –
«Это решение соответствует лучшим практикам ASP.NET MVC ...» - я бы сказал, что это ** не ** в соответствии с лучшими практики. Возвращение формы запроса POST напрямую противоречит шаблону PRG, который лучше всего подходит для всего веб-сайта, а не только для ASP.NET MVC. Существует множество способов соблюдения шаблона PRG в ASP.NET MVC, но наиболее распространенным способом является уже упомянутый подход ModelState-> TempData-> ModelState. Вы можете прочитать больше на PRG здесь: http://en.wikipedia.com/wiki/Post/Redirect/Get и хорошая реализация с атрибутами по адресу http://tinyurl.com/39p54k8 –