ASP.NET MVC: перенаправление на страницу, если для URL не задан параметр - PullRequest
2 голосов
/ 07 ноября 2008

http://localhost:50034/Admin/Delete/723

Этот параметр всегда нужен для выполнения действия, однако, если вы переходите по URL-адресу без параметра, возникает исключение. Как вы справляетесь с этим и перенаправляете обратно на главную страницу, ничего не делая?

Спасибо.

Ответы [ 3 ]

8 голосов
/ 07 ноября 2008

Я не уверен, что вы имеете в виду, вы имеете в виду, что URL http://localhost:50034/Admin/Delete/ генерирует исключение?

Попробуйте установить для параметра id значение NULL, например:

public class MyController : Controller
{
  public void Delete(int? id)
  {
    if (!id.HasValue)
    {
      return RedirectToAction("Index", "Home");
    }

    ///
  }
}
3 голосов
/ 07 ноября 2008
public ActionResult Details(int? Id)
{
     if (Id == null)
           return RedirectToAction("Index");
     return View();
}
1 голос
/ 07 ноября 2008

Предполагается, что вы используете правила маршрутизации по умолчанию:

  routes.MapRoute(
     "Default",  // Route name
     "{controller}/{action}/{id}",  // URL with parameters
     new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
   );

затем создайте свой метод Delete с обнуляемым int (int?) Для параметра id, аналогичного

public ActionResult Delete(int? id)
{
   if (id.HasValue)
   {
      // do your normal stuff 
      // to delete
      return View("afterDeleteView");
    }
    else
    {
      // no id value passed
      return View("noParameterView");
    }

}

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