2016-11-04 10 views
0

とMVCでwww.mysite.com/home/details/1/lesson1に私は自分のコードが私はUrl.action

Url.Action("Details", "Home", new { id= item.Id ,title=item.Title}, "http") 

あるUrl.Action

とMVCにURLを作成したいようなURLを作成したいですしかし、このコードは、私が

http://localhost:45201/Admin/Home/Details/1/lesson1 
のようにしたい

http://localhost:45201/Admin/Home/Details/1?title=lesson1 

でのようにリンクを作成します

+1

経路をどのように定義していますか? –

+1

は、ルートの定義方法によって異なります。あなたはコンベンションベースのルーティングや属性ルーティングを使用していますか? – Nkosi

答えて

1

ルートの定義方法によって異なります。

使用このために規則ベースのルーティング

routes.MapRoute(
    name: "AdminHomeDetails", 
    url: "Admin/Home/Details/{id}/{title}", 
    defaults: new { controller = "Home", action = "Details" } 
); 

OR属性の使用このルーティング:

[RoutePrefix("Admin/Home")] 
public class HomeController : Controller { 
    //GET Admin/Home/Details/1/lesson1 
    [Route("Details/{id:int}/{title}")] 
    public ActionResult Details(int id, string title) { ... } 
} 

属性ルーティングのための規則ベースのルーティング前にルート属性マッピングすることを忘れないでください

public class RouteConfig { 

    public static void RegisterRoutes(RouteCollection routes) { 

     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapMvcAttributeRoutes(); 

     //...and then convention-based routes. 

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

チェck Attribute Routing in ASP.NET MVC 5属性ルーティングの詳細については、

+0

ありがとうございます、このコード[Route( "Details/{id}/{title})"]どこで使われますか? – mossio

+0

これは属性ルーティングです。ここでそれについて読むhttps://blogs.msdn.microsoft.com/webdev/2013/10/17/attribute-routing-in-asp-net-mvc-5/ – Nkosi

+0

私はこの属性ルーティングをroutConfigで使用しますが、 – mossio

関連する問題