您好,我的 MVC 4 应用程序中有一个如下 URL
http://localhost/ABC/Home/DeleteApp/3000
我已经配置了 RouteConfig.cs,如下
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
它会转到正确的 DeleteApp Controller ,但 ID 值为 Null。当我启用 firebug 时,它会显示正确的 URL。
可能会出现什么问题? 它调试并来到这里,但 id 字段为空;
public void DeleteApp(string id)
{
try
{
// delete logic
}
catch (Exception e)
{
//
}
}
最佳答案
可能的原因:
-> 检查您的“id”变量名称(必须与 RouteConfig 和 Controller 操作中的名称完全相同,区分大小写)
-> 在此路由之前映射了与模式匹配的其他路由
如果您有一个映射为 {controller}/{action}/{something}
的路由,另一个映射为 {controller}/{action}/{something_else}
的路由>,当您调用 url“Home/DeleteApp/3000”时,它无法判断 3000 是“something”还是“something_else”,因此它将采用第一个匹配项。
要使其正常工作,您必须使用“路线约束” http://www.codeproject.com/Articles/641783/Customizing-Routes-in-ASP-NET-MVC
关于asp.net-mvc - MVC 4 路由无法正确读取 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21874254/