我对这里的一些事情有点困惑。我有一个表格,该表格的 URL 是:
http://domain.com/Home/requestquote
当我单击表单上的提交并且位于表单控制器中处理此表单的方法发送回一个视图时,URI 如下所示:
http://domain.com/form/requestQuoteSubmit
方法在哪里requestQuoteSubmit
。
当验证将页面发回错误时以及表单提交成功时都会发生这种情况。
成功时发送回的视图是Home/thanks
错误的,它应该只是发送回来Home/requestquote
。一切似乎都工作正常,除了 URI 不是它应该是的事实。这会导致页面上的所有其他内容中断,因为我的链接如下所示:
@Url.RouteUrl(Model.CompanyPageDatabaseModel.companyCode, new { Controller = MVC.services.Name, Action = MVC.services.ActionNames.page })
因此, companyCode 值没有正确传递并正确形成链接。我不确定表单方法如何或为什么发送回正确的页面,但将 URI 设置为自身?
这是我的路线。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
null,
"{action}",
new { controller = MVC.Home.Name, action = MVC.Home.ActionNames.Index },
new { RootAction = new RootActionConstraint() } // Route Constraint
);
routes.MapRoute(
null, // Route name
"{controller}/{action}", // URL with parameters
new { controller = MVC.Home.Name, action = MVC.Home.ActionNames.Index }, // Parameter defaults
new { controller = "Home|contact|franchise|form|resources|services|technology|community|careers|carriers|about" }
);
routes.MapRoute(
null,
"{companyCode}/{action}",
new { controller = MVC.Home.Name, action = MVC.Home.ActionNames.Index },
new { RootAction = new RootActionConstraint() } // Route Constraint
);
routes.MapRoute(
"jax",
"{companyCode}/{controller}/{action}",
new { controller = MVC.Home.Name, action = MVC.Home.ActionNames.Index }
);
最后一个路线值是特许经营路线的示例。
这里也是视图中的表单代码:
@using (Html.BeginForm("requestquote", "form", FormMethod.Post))
{ }
有任何想法吗?
谢谢。
编辑:在我的路线中添加。