2014-06-17 17 views
5

Şu anda projemde, bağlantı etiketlerinin href özniteliğinde bağlantılar oluşturmak için @ Url.Action'ı kullanıyorum.Url.Action, tam URL üretmenin herhangi bir yolu olan querystring'i üretir?

örneğin

:

<a href='@Url.Action("Index", "Home", new { id = 10 })' id="btn">Click</a> 

Ve bu ancak üretilen URL, gayet iyi çalışıyor ...

/home/index?id=10 

için url

/home/index/10 

dönmek için bir yol var SEO ve estetik amaçlı? (Böylece ...

<a href='@Url.Action("Index", "Home", new { name="test" })' id="btn">Click</a> 

/home/index/test 
+0

'Url.Action' yönlendirme tablonuzu kullanacak, buna izin vermek için doğru ayarlanmış mı? – DavidG

+0

@DavidG Tam URL'yi kullanabileceğim için izin verilir. Ancak her ikisi de aynı sayfaya yönlendirir. '/ home/index/test' çalışır - ama'/home/index? name = test' yapar –

cevap

3

Bunu sağlamak için gereken url dönmek için elinden gerçek uygulamada ve bunun yerine bir dize kullanacaktır - Bir tutucu olarak bir kimliği ve numarasını kullandım yönlendirme doğrudur böyle bir rota olduğundan emin olun. Eğer böyle bir seyir gerekir name adında bir parametreyi kullanırken olarak, sizin 'gerçek uygulaması' için

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

:

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