PDA

View Full Version : سوال: ریختن نام کنترلر در یک متغیر



hastiam
یک شنبه 16 بهمن 1390, 14:54 عصر
سلام
چطور می تونم در دستور زیر به جای Home از یک متغیر اسفاده کنم مثلا اول Home رو در یک متغیر مثلا ControllerName می ریزیم و بعد به جای نام آن کنترلر از متغیر ControllerNameاستفاده کنیم ؟



@Url.Action("Index","Home")


اومدم کدم رو به این شکل نوشتم اما یا error می گیره یا کار نمیکنه :



@Url.Action("Index",ControllerName)

amir-yeketaz
یک شنبه 16 بهمن 1390, 17:46 عصر
@{ var controllerName = "Home"; } @Url.Action("Index" , controllerName)

تو بلاک میتونید کد سی شارپ بزنید ...

موفق باشید ...

hastiam
دوشنبه 17 بهمن 1390, 08:50 صبح
@{ var controllerName = "Home"; } @Url.Action("Index" , controllerName)

تو بلاک میتونید کد سی شارپ بزنید ...

موفق باشید ...
دوست عزیز من هم همین کد رو اجرا کردم که دقیقا controllerName ای که تو Url.Action هست رو خطا می گیره برای رفع این error چیکار کنم.:گریه:

amir-yeketaz
دوشنبه 17 بهمن 1390, 21:55 عصر
کد کاملتر :


@{ var controllerName = "Home"; var url = Url.Action("About", controllerName); } <a href="@url">My Link</a>


به این علت خطا میگیره که نوع بازگشتی Url.Action رشته ی سی شارپ هست که نمیشه تو DOM مستقیم نوشت ...

موفق باشید ...

Leon_SFS
شنبه 22 بهمن 1390, 20:15 عصر
اگه بخوای داینامیک هم اسم کنترلر رو مقدار دهی کنی باید از تو کنترلرت واسه Viewbag یه مقدار پاس بدی،مثل:
ViewBag.ControllerName = "Home"
بعد میای تو View
<a href=@url.action("about",viewbag.ControllerName)>link</a>

hastiam
یک شنبه 23 بهمن 1390, 08:02 صبح
یه راه حلی که تازه پیداش کردم اینه که ::تشویق:


@Url.Action("Index",new {Controller=ViewBag.ControllerName})

با گذاشتن new دیگه احتمال اینکه با خطا مواجه بشیم نیست.:لبخندساده: