2011-12-16 91 views
0

每當我使用Html.ActionLink它總是給我參數?而不是它分開的網址。如何讓Html.ActionLink返回非查詢字符串鏈接?

例如:

@Html.ActionLink("Edit", "Edit", new { Username = (string)item.username }) 

給我:

/Edit?Username=username 

相反的:

/Edit/Username 

像我已經在我的控制器進行定義。

任何人都可以告訴我如何得到另一種方式?而不是方式。

感謝

回答

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 
    ); 

} 
0

我用AttributeRouting這些東西,有了它你可以用實際的路徑裝點您的控制器,像這樣:

[GET("/Edit/{Username}")] 
public ActionResult Edit(string Username) 
+0

@AndrewBarber - 謝謝,我更新了這篇文章。 – Madd0g

相關問題