ASP.NET MVC区域路由无法识别id

时间:2013-10-01 09:00:38

标签: asp.net-mvc-4 asp.net-mvc-routing

我有一个包含4个区域的asp.net MVC项目。

当我尝试在属于某个区域的控制器中的某个操作中放入参数时,我的问题就开始了。

我的RouteConfig:

public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }

我的区域注册:

public override void RegisterArea(AreaRegistrationContext context)
        {
            context.MapRoute(
                "bg_default",
                "bg/{controller}/{action}/{id}",
                new { controller="jde",action = "Index", id = UrlParameter.Optional }
            );
        }

这是我控制器中的一个动作。当我调试它时,_what字符串参数获取动作“NullifiedInvoicesFix”的名称。

当我输入mysite / bg / Jde / NullifiedIncoicesFix / update时,_what不是“update”而是“NullifiedInvoicesFix”

public ActionResult NullifiedInvoicesFix(string _what)
        {
            if (_what == "view")
            {
                ViewBag.F4211 = this.db.Query<dynamic>(@"SELECT sdivd,SDDOC,SDDCT,SDDOCO,SDDCTO,SDODOC,SDODCT FROM F4211 WHERE SDDCT IN
                                                    ('E8','E9','E0','EP','EC','EB','ED') AND SDODOC <> SDDOC AND
                                                    SDODOC<>0 order by sdivd");    
            } 
            return View();

1 个答案:

答案 0 :(得分:1)

您应该将_what重命名为id:

 public ActionResult NullifiedInvoicesFix(string id)