http://localhost:50034/Admin/Delete/723
始终需要此参数来执行操作,但是,如果转到不带参数的URL,则会发生异常。你如何处理这个并重新导向回主页而不做任何事情?
感谢。
答案 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");
}
}