2008-11-07 1 views
2

http://localhost:50034/Admin/Delete/723ASP.NET MVC: Перенаправление на страницу назад, когда ни один из параметров не дается URL

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

Спасибо.

ответ

8

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

Попробуйте установить параметр ID, как обнуляемый, как это:

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

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

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

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

затем создать метод удаления с обнуляемым междунаром (интермедиат ?) для параметра 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"); 
    } 

Смежные вопросы