MVC Routing'e İlişkin Bir Sorun
-
Merhaba hocalar,
MVC'de xxx.com/Yazilar?baslik=LoremIpsum gibi bir url'yi xxx.com/Yazilar/LorempIpsum a nasıl çevirebilirim ?
Sabahtan beri türlü türlü şey denedim, regex denedim yapamadım bi türlü..
-
Dostum sen bir şey yapmıyorsun hazır geliyo zaten bak söyle
xxx.com/controllAdi/methodAdi/id şeklinde hazır geliyo daha sonra özelleştiriyorsun.
routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "default", action = "Index", id = UrlParameter.Optional } );
Varsayılan routConfig dosyayı bunu söyle yapabilirsin mesela;routes.MapRoute(null, "Proje/{seoText}-{id}", new { controller = "default", action = "Index" });
Fuzulli tarafından 24/Ağu/14 14:53 tarihinde düzenlenmiştir
xxx.com/Proje/ ile başlayan yerde bu harita devreye girecek ve seoText'inin id değerine göre yönlendirecek en temeli yani, araştır kurcala çözersin çok basit bir methodtur. -
Fuzulli bunu yazdı
Dostum sen bir şey yapmıyorsun hazır geliyo zaten bak söyle
xxx.com/controllAdi/methodAdi/id şeklinde hazır geliyo daha sonra özelleştiriyorsun.
routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "default", action = "Index", id = UrlParameter.Optional } );
Varsayılan routConfig dosyayı bunu söyle yapabilirsin mesela;routes.MapRoute(null, "Proje/{seoText}-{id}", new { controller = "default", action = "Index" });
xxx.com/Proje/ ile başlayan yerde bu harita devreye girecek ve seoText'inin id değerine göre yönlendirecek en temeli yani, araştır kurcala çözersin çok basit bir methodtur.hocam zaten route ekledim kısmen özelleştirdim ama istediğimi yapamadım biraz ayrıntı vereyim:
routes.MapRoute( name: "Yazilar2", url: "Yazilar/{baslik}", defaults: new {controller = "Home", action = "Yazilar", id = UrlParameter.Optional} );
url olarak xx.com/Yazilar/baslik girilince HomeController daki Yazilar action'ına baslik parametresini yolluyor.
bense bunun yanında xx.com/Yazilar?=baslik girildiğinde xx.com/Yazilar/baslik olarak yönlensin istiyorum
-
Bak MVC Routes methodunu tam anlamamışsın sanırım eski QueryString yöntemini unut örn;( index?ad=Mulayim) Bu yazım seo dostu olmadığı için MVC Routes geliştirildi mantık şu
routes.MapRoute(null, "Proje/{seoText}-{id}", new { controller = "default", action = "Index" });xxx.com/Proje den gelen istek senin tanımladığın kontrol ve action a iletilir. Burda varsayılan olarak "Default" kontrolü ve "Index" methodu.
Controller Kısmı;
[HttpPost]
public ActionResult Index(int id)
{
var a = db.uye.where(x => x.id == id).SingOrDefault();
return View(a);
}View Kısmına yönlendirme ise link söyle olacak;
<a href="/Proje/@Model.seoText-@Model.id">Üyeye Git</a>
Çıktısı : <a href="/Proje/uye-duzenle-falan-filan-1234">Üyeye Git</a>
Controllerden gelen model i view de nasıl yazacağını bildiğini varsayıyorum. -
Fuzulli bunu yazdı
Bak MVC Routes methodunu tam anlamamışsın sanırım eski QueryString yöntemini unut örn;( index?ad=Mulayim) Bu yazım seo dostu olmadığı için MVC Routes geliştirildi mantık şu
routes.MapRoute(null, "Proje/{seoText}-{id}", new { controller = "default", action = "Index" });xxx.com/Proje den gelen istek senin tanımladığın kontrol ve action a iletilir. Burda varsayılan olarak "Default" kontrolü ve "Index" methodu.
Controller Kısmı;
[HttpPost]
public ActionResult Index(int id)
{
var a = db.uye.where(x => x.id == id).SingOrDefault();
return View(a);
}View Kısmına yönlendirme ise link söyle olacak;
Üyeye Git
Çıktısı : Üyeye Git
Controllerden gelen model i view de nasıl yazacağını bildiğini varsayıyorum.hocam tam açıklayamadım galiba ben zaten querystring olayından kurtulmaya çalışıyorum.
Yorum bölümü var projede yorumekle action resultunda
return RedirecToAction("Yazilar",new{baslik=Model.blabla});
diyorum bunun sonucunda Yazilar?baslik=blabladeger şeklinde döndürüyor ben de MVC routes ile bunu değiştirmeye çalışıyorum. Umarum açıklayabilmişimdir tam olarak.
-
upp
-
updulsuavi
-
Benimde bununla ilgili desteğe ihtiyacım var fakat dağınık yapısı sebebiyle MVC yi hiç sevemedim. WebForms daki urlroutingle de yapabilirmiyiz?
Routing kullanınca tüm parametreleri routingden almalıyız dimi? Querystringlere girmememiz gerkiyor ?
Ben şahsen SEO falan umursamıyorum, tek istediğim adresleri kafama esince dinamik değiştirebilmek, mesela bugün members.asp?id=3 yaptığımı yarın koda dokunmadan routing ile site.com/Members/3 yapabilmek istiyorum, mümkün mü bu?
HolyOne tarafından 24/Ağu/14 20:18 tarihinde düzenlenmiştir -
Bir diğer sorum da Routing ile uzantıları değiştirebilirmiyim ? mesela aspx değil php gözüksün?
-
HolyOne bunu yazdı
Benimde bununla ilgili desteğe ihtiyacım var fakat dağınık yapısı sebebiyle MVC yi hiç sevemedim. WebForms daki urlroutingle de yapabilirmiyiz?
Routing kullanınca tüm parametreleri routingden almalıyız dimi? Querystringlere girmememiz gerkiyor ?
Ben şahsen SEO falan umursamıyorum, tek istediğim adresleri kafama esince dinamik değiştirebilmek, mesela bugün members.asp?id=3 yaptığımı yarın koda dokunmadan routing ile site.com/Members/3 yapabilmek istiyorum, mümkün mü bu?
hocam bi ara sana sorayım dedim iyi ki sormamışım sen de bilmiyormuşsun :))
hocam benim amacım şu an querystringleri de route ile almaya çalışmak. constraints de regex kullanmayı denedim daha da sapıttı..
-
regex çok hızlı çalışan bişey değil, adres parse ederken kullanılması yanlış bence. Zaten routing fonksiyonları eğer regex kullanmaya izin veriosa kullanmam.