url

2016-03-21 28 views
4

'da eylemden önce bir parametrenin tanımlanması mümkün. Soru, başlık kadar basit.url

Şunlara benzeyen bir yol var mı? {controller}/{id}/{action}? Şu anda (sadece basit işlevi) kodunda ne

Bu

( device benim denetleyicisi olan) 'dir:

[HttpGet] 
[Route("Device/{id}/IsValid")] 
public bool IsValid(int id) { 
    return true; 
} 

Ama şu URL'yi zaman tarayıcı o bulamadığını söylüyor sayfa: localhost/device/2/IsValid.

Ve bu URL'yi çalıştığınızda, gayet güzel çalışıyor: localhost/device/IsValid/2

Yani, varsayılan rota localhost/device/IsValid/2 yerine localhost/device/2/IsValid kullanmak mümkündür? Ve bunu nasıl yapmalı?

Daha fazla bilgi talep edebilirsiniz! Şimdiden teşekkürler!

+0

Sen RouteConfig dosyasını kodein değiştirmeniz gerekir. public static void RegisterRoutes (RouteCollection yolları) { yolları.IgnoreRoute ("{resource} .axd/{* pathInfo}"); routes.MapRoute ( "Varsayılan", // Güzergah adı "{controller}/{id}/{action}", // URL'leri yeni {controller = "Home", action = "Index", id = ""} // Parametre varsayılanları ); } –

+0

@RahulChavan 'th' nedir? Ve bunu nereye eklemek zorundayım? –

+0

App_start içinde RouteConfig dosyası –

cevap

4

yılında Default rota önce bu kullanmayı deneyin. Özellik yönlendirmeyi etkinleştirdiğinizden emin olun.

MVC için

Attribute Routing in ASP.NET MVC 5

RouteConfig.cs kontrolörü olarak

public class RouteConfig { 

    public static void RegisterRoutes(RouteCollection routes) { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapMvcAttributeRoutes(); 

     //...Other code removed for brevity 
    } 
} 

[RoutePrefix("device")] 
public class DeviceController : Controller { 
    //GET device/2/isvalid 
    [HttpGet] 
    [Route("{id:int}/IsValid")] 
    public bool IsValid(int id) { 
     return true; 
    } 
} 
+0

Yardımlarınız için teşekkürler! : D Ama, neden "': int'? Neden bunu yapmalıyım? –

+0

Örneğinize dayalı bir kısıtlama. O kadar kolay 'bool' veya 'long' olabilirdi. URL'de kullanılan türlerin istediğiniz türe uygun olduğundan emin olmak istersiniz. Bunu yapmak zorunda değilsin. Başvurulan makaleyi okuyun. – Nkosi

+0

Evet, makaleyi okudum. Çok teşekkür ederim! :) –

2

Sen yönlendirme Özellik kullanıyorsunuz RoutingConfig

config.Routes.MapHttpRoute(
    "RouteName", 
    "{controller}/{id}/{action}" 
    );