با سلام
من در سایتم area دارم به نام admin می خوام برای اکشن ها route بزارم کدشم اینه
[Route("درباره ما")] public ActionResult tt() { var s = "hello"; var ff = s; return View(); }
اما وقتی اجرا می کنم view رو نمی شناسه بدون roue کار می کنه
توو route config هم اینو گذاشتم
routes.MapMvcAttributeRoutes();
از طریق url میزنم درباره ما وارد اکشن میشه اما به view میخوره میگه نیست
دوست عزیز در area ها باید نام area در اول ادرس دهی وجود داشته باشد تا با route اصلی و root پروژه اختلال ایجاد نکنه
میتونید در Return View آدرس کامل View را قرار دهید
مشکل برطرف میشه
آقای مدائنی یعنی چه آدرسی قرار بدم؟
return View(@"~/Area/Admin/Views/Admin/tt.cshtml");
میشه دقیق بگید چی بنویسم
من هر آدرسی بگید زدم نشد
ممنونم
میشه بگید چه طوری بگم بره
[Route("admin/درباره ما")] یعنی توو url هم admin باشه هم درباره ما
؟
ممنون
سلام
به این صورت
return View("~/Area/Admin/Views/Admin/tt");
سلام ممنون ولی اینی که شما گفتید هم جواب نداد
تنظیمات Route اصلی
public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”); routes.MapMvcAttributeRoutes(); AreaRegistration.RegisterAllAreas(); routes.MapRoute( name: “Default”, url: “{controller}/{action}/{id}”, defaults: new { controller = “Home”, action = “Index”, id = UrlParameter.Optional } ); }
بعد در بلای کنترلر مورد نظر صفت زیر رو قرار بده
[RouteArea("Admin")] [RoutePrefix("menu")] public class MenuController : Controller { }
و بعد برای Action خود مانند زیر عمل کن
[Route(“show-options”)] public ActionResult Options() { … }
آقا خیلی ممنونم
خودم یه چیزهاییشو حذف کردم از نوشته های شما درست شد همونی شد که میخواستم
فقط یه سوال : من توو AdminAreaRegistration دیگه هیچ routi ندارم بعداً به مشکل نمی خورم؟
منظورم این متد هست
public override void RegisterArea(AreaRegistrationContext context) { }
خیر مشکلی پیش نمیاد
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)