ASP.NET MVC:在没有为URL指定参数时重定向回页面

时间:2008-11-07 15:34:35

标签: asp.net asp.net-mvc

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

始终需要此参数来执行操作,但是,如果转到不带参数的URL,则会发生异常。你如何处理这个并重新导向回主页而不做任何事情?

感谢。

3 个答案:

答案 0 :(得分:8)

我不确定你的意思,你的意思是网址http://localhost:50034/Admin/Delete/正在产生异常吗?

尝试将id参数设置为可为空,如下所示:

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

    ///
  }
}

答案 1 :(得分:3)

public ActionResult Details(int? Id)
{
     if (Id == null)
           return RedirectToAction("Index");
     return View();
}

答案 2 :(得分:1)

假设您使用的是默认路由规则:

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

然后使用nullable int(int?)为id参数创建Delete方法,类似于

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");
    }

}