Html.ActionLink显示查询url而不是漂亮的url

时间:2010-04-12 13:31:01

标签: asp.net .net asp.net-mvc html-helper

Html.ActionLink

<li> ${Html.ActionLink<HomeController>(c => c.Edit(ViewData.Model.Id, ViewData.Model.Title), "Edit")} </li>

创建为html时,显示的网址为Edit/5006?title=One。如何将其更改为Edit/5006/One这样的漂亮网址?

我的编辑操作方法是

public ActionResult Edit(int id, string title) 

3 个答案:

答案 0 :(得分:2)

您需要设置路线:

routes.MapRoute(
    "DefaultWithTitle",
    "{controller}/{action}/{id}/{title}",
    new 
    { 
        controller = "Home", 
        action = "Edit", 
        id = UrlParameter.Optional,
        title = UrlParameter.Optional
    }
);

答案 1 :(得分:1)

这取决于功能标记,但它取决于路由配置。

routes.MapRoute("Edit",                                         // Route name
        "{controller}/{action}/{id}/{title}",                   // URL with parameters 
        new { controller = "Home", action = "Index", id = "" }  // Parameter defaults 
); 

答案 2 :(得分:0)

看看这个问题的第一个答案:HTML.ActionLink method

重要的是你必须确保为ActionLink()使用正确的重载。