GET modelini kullanmanın aksine birden çok eğik çizgi içeren argümanlardan geçen birçok site tarafından kullanılan bir kuralı takip etmeye çalışıyorum. Aşağıdaki Şu anda bu (çoğunlukla) çalışma kullanarak varASP.NET MVC 4 Parametreler Forward Slashes tarafından ayrılan "/" düzgün bir şekilde geçmiyor "
http://www.foo.bar/controller/action/a/b/c
:
Bu şekildehttp://www.foo.bar/controller/action?arg1=a&arg2=b&arg3=c
: is
, ben gibi bir URL tüketmek arıyorumpublic static void RegisterRoutes(RouteCollection routes) {
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Sandbox",
url: "Sandbox/{action}/{*args}",
defaults: new { controller = "Sandbox", action = "Index", args = UrlParameter.Optional }
);
}
Ancak,
gibi bir şeyden geçersemhttp://www.foo.bar/Sandbox/Index/a/
Kontrol ve işlem
http://www.foo.bar/Sandbox/Index/a
veya
uygun olarak adlandırılır:public ActionResult Index(string args)
{
return View();
}
fakat argümalar boş. Ben böyle bir şey geçmek durumunda
Ancak:
http://www.foo.bar.com/Sandbox/Index/a/b
Sonra args istediğiniz gibi, "a/b" dir.
SO ve diğer web sitelerini inceliyorum, ancak çözümü bulamıyor gibiyim.
Bu davranışı gidermek için eksik olduğum belli bir şey var mı?
Yanlış terminolojiyi mi arıyorum?
Not: Bu sorunu Windows Kimlik Doğrulaması kullanarak yepyeni bir ASP.NET uygulamasıyla yeniden sunabildim. Bütün bu yapıldı:
-
Değişim Kimlik üzerinde
- tıklayın
- Seç Windows Kimlik
- RouteConfig.cs Harita Rota yukarıda ekle MVC seç VS 2015
- yılında ASP.NET uygulaması oluşturun
- SandboxController.cs dosyasını oluştur ve args parametresini Dizin'e ekle
- Dizin Oluşturma.html görüntüleme
- Yeniden oluşturma http://localhost:55383/Sandbox/Index/a/b
Herhangi yardım kullanarak http://localhost:55383/Sandbox/Index/a
tüm yolları ve sipariş göster –
Evet. Ekledim Ve şu an çok aptalım. Varsayılanın ilk kez çağrıldığını anladım. – Thumper