2013-06-01 13 views
5

Ben Registration adında bir denetleyici ve aşağıdakiler olarak onun içinde bir eylem yöntemi vardır: mvc belirli denetleyicisi için bir güzergah eşleyemezsiniz 4

public JsonResult GetReqs(GridSettings gridSettings, int rt) 
    { 
     ...//whatever 

     return Json(jsonData, JsonRequestBehavior.AllowGet); 
    } 

Bu yüzden bir rota eklendi ve şimdi RouteConfig.cs böyledir : Ben rt parametreyi ve GetReqs çağrılmaz eylem yöntemini erişemez ancak

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

     routes.MapRoute(
      name: "RegReq", 
      url: "{Registration}/{GetReqs}/{rt}", 
      defaults: new { controller = "Registration", action = "GetReqs", rt = UrlParameter.Optional } 
     ); 

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

(bunun üzerine bir kesme noktası ayarlamak ama hiçbir şey olmadı). Hata nerede?

Düzenleme: Bağlantı örneği Denedim: ~/Registration/GetReqs/1

cevap

6

Sanırım ilk rotada ayraçlar kaldırmak gerekir düşünüyorum:

routes.MapRoute(
      name: "RegReq", 
      url: "Registration/GetReqs/{rt}", 
      defaults: new { controller = "Registration", action = "GetReqs", 
       rt = UrlParameter.Optional } 
     ); 

varsayılan rota dizesini kullanmak MVC anlatmak için {controller} sahiptir URL'nin bu bölümünde denetleyici adı olarak. Denetleyiciyi biliyorsunuz, bu yüzden sadece belirli dizeyle eşleşmeniz gerekiyor.

+0

Sabit! çok teşekkürler – AminSaghi