更改路线值会中断表单提交... MVC3

时间:2012-07-13 21:22:39

标签: c# asp.net-mvc-3

我在global.asax中更改了路由,因此如果手动输入查询字符串,则值将保留在地址栏中:

 routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Account", action = "LogOn", id = UrlParameter.Optional}   
        );
        routes.MapRoute(
            "OrderId", // Route name
            "{controller}/{action}/{db}", // URL with parameters
            new { controller = "Account", action = "LogOn", db = UrlParameter.Optional}                   );

我这里有2个值,因为id参数在整个应用程序中使用,如:

        public ActionResult AddNote(string id)

db参数是用户想要连接到不同的数据库并通过查询字符串输入并在出现问题时保留在url中,例如错误的用户名/密码。

       thesite.com/?db=somedb

该应用程序正在像之前一样工作,除了没有像这样指定的操作的表单:

     @using (Html.BeginForm())

此表单将以

的形式呈现给客户
 <form method="post" action="/UserTasks/NewOrder/Index">

永远不会调用“/ UserTasks / NewOrder / Index”操作。没有错误或任何东西。我的原始global.asax看起来像这样,表单会按预期发回服务器:

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

Home / Index操作除了重定向到Account / LogOn之外什么也没做,这就是为什么我取消Home / Index调用并直接进入Account / Logon主页。

我需要在global.asax中进行哪些更改,以便所有未明确输入操作的表单都将触发ASP.Net MVC将像以前一样提供给它的默认操作?感谢

0 个答案:

没有答案