0

这是我的表格或我的表格示例。:

@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { id = "indexForm" }))
{ 
<div>etc</div>
}

然后我有一个 javascript 函数,它将在不同的时间提交此表单。:

$("#indexForm").submit();

问题是,当我最初访问我的应用程序时,url 是这样的。:

http://myWebsite/myApplication/myController/myAction

通过javascript提交表单后,这是我的网址。:

http://myWebsite/myApplication/

由于我拥有它的路由,它可以毫无问题地导航到我的索引操作,但我真的希望该 url 包含我的控制器和操作。

提交表格后可以吗?

4

1 回答 1

1

提交表单后, URL 是myWebsite/myApplication/,因为您可能有默认路由:

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

在 MVC 中生成 URL 时,路由用于根据提供的值构造 URL。如果提供的值与路由中的默认值匹配,则它们将不会出现在 URL 中,因为它们是不必要的。如果您希望这些值显示在路由中,而不是从默认值中删除它们。但是,这样做意味着对myWebsite/myApplication/的请求将不再找到您的Home控制器和Index操作。

于 2013-09-10T23:21:06.640 回答