【发布时间】:2014-10-31 06:03:49
【问题描述】:
我在重写我的网址时遇到了问题。到目前为止,我的 url 是带有参数的查询字符串的形式。现在我想将该网址更改为更友好的网址 .举个例子吧
http://localhost:59423/SomeController/SomeActionMethod?Id=7
类似
http://localhost:59423/SomeController/SomeActionMethod/7
或类似的东西。
现在我必须在 route.config 文件中进行修改,但我没有得到确切的修改
我添加了类似的东西
routes.MapRoute(
name: "SomeName",
url: "SomeController/SomeActionMethod/{Id}",
defaults: new { controller = "SomeController", action ="SomeActionMethod" });
如果我输入,我现在可以访问视图
http://localhost:59423/SomeController/SomeActionMethod/7
但是当我把 url 作为
http://localhost:59423/SomeController/SomeActionMethod?Id=7
这应该会自动更改为
http://localhost:59423/SomeController/SomeActionMethod/7
它是否应该自动更改为正确的 url 。如果没有,那怎么办?如果是,那么我缺少什么,因为它没有改变
动作方法
public ActionResult SomeActionMethod(string Id)
{
return View((Id));
}
【问题讨论】:
-
发布你的
RouteConfig.cs文件的内容 -
我知道我必须添加另一个 routes.mapRoute。您不能根据我上面提供的内容来判断吗?
-
不,您不必再添加一个。事实上,默认路由正确处理了这个问题,所以我假设你已经改变了一些东西。除非你展示你已经拥有的东西,否则我无能为力。我还建议您添加
SomeActionMethod的签名以及如何在视图中生成链接。 -
我已经编辑了我的问题。请检查
-
这就是我在回答中提到的......因为你已经将参数命名为
Id,你应该在你的操作方法中将参数名称命名为相同的东西......你能发布签名动作方法?
标签: asp.net asp.net-mvc-4 url url-rewriting