PDA

View Full Version : سوال: مسیریابی



aroshanzamir
یک شنبه 13 مهر 1393, 23:31 عصر
سلام دوستان
این Route را در نظر بگیرید :


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


چون سگمنت آخر را catchall* معرفی کردیم هر نوع آدرسی را می توانیم پذیرش کنیم تمام سگمنت های بعد از id همه به catchall اختصاص پیدا می کند
وباید به روش های برنامه نویسی آن ها را از هم جدا کنیم

مثلا :

example.com/Home/Index/10

Controller : Home , action :Index , id:10

Or

example.com/Home/Index/All/Delete/Pern

Controller :Home , actionn :Index , id:All , Catchall:Delete/Pern

طبق گفته کتاب آقای بهروز راد باید برنامه نویسی مثلا split این ها را از هم جدا کنید

فرض کنید این متد اکشن را داریم :


public ActionResult Edit(int id)
{
object obj = RouteData.Values["catchall"];
return View();



اگر به صورت مستقیم در آدرس بار این آدرس را تایپ کنیم example.com/Home/Index/All/Delete/Pern ... این دو Delete/Pern در obj قرار میگیرند که ما با split از هم جدا می کنیم

مشکل اینجاست که مثلا اگر من بیام یه اکشن لینک بزارم رو صفحه و routeValue را طبق زیر مقدار دهی کنم مقدار name را به صورت کوئری استرینگ نمایش میدهد و در کل مقدار catchall هم null می باشد


چکار کنیم که مثل تایپ مستقیم آدرس در آدرس بار عمل کنه و کوئری استرینگ ایجاد نکنه ؟



@Html.ActionLink("Edit", "Edit", new { id = item.Id, name="reza" })


آدرس بار : http://localhost:4448/Home/Edit/14?name=reza

aroshanzamir
سه شنبه 15 مهر 1393, 07:38 صبح
سلام
کسی نیست جواب این سوال منو بده ؟
دمتون گرم همکاری کنید

aroshanzamir
چهارشنبه 16 مهر 1393, 17:54 عصر
بچه ها دمتون گرم کمک کنید خیلی لازم دارم