每当我使用Html.ActionLink时,它总是给我参数?而不是它分开的网址。
例如:
@Html.ActionLink("Edit", "Edit", new { Username = (string)item.username })
给我:
/Edit?Username=username
而不是:
/Edit/Username
就像我在控制器中定义它一样。
有谁能告诉我如何获得另一种方式?而不是方式。
由于
答案 0 :(得分:2)
您可能需要在global.asax
中注册路线以定义Username
参数:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"EditStuff",
"{controller}/{action}/{Username}",
new { controller = "YourControllerName", action = "Edit" }
);
// the default
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
答案 1 :(得分:0)
我使用AttributeRouting来做这些事情,用它可以用实际路径装饰你的控制器,如下所示:
[GET("/Edit/{Username}")]
public ActionResult Edit(string Username)