0

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

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

我的路线配置:

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 不是“更新”而是“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();
4

1 回答 1

1

您应该将 _what 重命名为 id:

 public ActionResult NullifiedInvoicesFix(string id)
于 2013-10-01T09:38:41.633 回答