مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

محمد ملکی

عضویت از 1394/03/02

تعیین route برای اکشن های داخل Area

  • یکشنبه 19 اردیبهشت 1395
  • 17:47
تشکر میکنم

با سلام

من در سایتم area دارم به نام admin  می خوام برای اکشن ها route بزارم کدشم اینه

  [Route("درباره ما")]
        public ActionResult tt()
        {
            var s = "hello";
            var ff = s;
            return View();
        }

اما وقتی اجرا می کنم view  رو نمی شناسه  بدون roue کار می کنه

 توو route config  هم اینو گذاشتم

 routes.MapMvcAttributeRoutes();

از طریق url  میزنم درباره ما وارد اکشن میشه اما به view میخوره میگه نیست

پاسخ های این پرسش

تعداد پاسخ ها : 9 پاسخ
کاربر سایت

افشین ایمانی زاده

عضویت از 1393/12/24

  • یکشنبه 19 اردیبهشت 1395
  • 17:56

دوست عزیز در area ها باید نام area در اول ادرس دهی وجود داشته باشد تا با route اصلی و root پروژه اختلال ایجاد نکنه

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 19 اردیبهشت 1395
  • 19:29

میتونید در Return View آدرس کامل View را قرار دهید

مشکل برطرف میشه

کاربر سایت

محمد ملکی

عضویت از 1394/03/02

  • یکشنبه 19 اردیبهشت 1395
  • 22:12

آقای مدائنی یعنی چه آدرسی قرار بدم؟

            return View(@"~/Area/Admin/Views/Admin/tt.cshtml");

میشه دقیق بگید چی بنویسم

من هر آدرسی بگید زدم نشد

ممنونم

 

کاربر سایت

محمد ملکی

عضویت از 1394/03/02

  • یکشنبه 19 اردیبهشت 1395
  • 22:16

میشه بگید چه طوری بگم بره

   [Route("admin/درباره ما")]
یعنی توو url هم admin باشه هم درباره ما

؟

ممنون

 

کاربر سایت

علی تمیمی

عضویت از 1393/06/27

  • یکشنبه 19 اردیبهشت 1395
  • 23:29

سلام

 به این صورت

return View("~/Area/Admin/Views/Admin/tt");

 

کاربر سایت

محمد ملکی

عضویت از 1394/03/02

  • یکشنبه 19 اردیبهشت 1395
  • 23:50

سلام ممنون ولی اینی که شما گفتید هم جواب نداد

 

کاربر سایت

افشین ایمانی زاده

عضویت از 1393/12/24

  • دوشنبه 20 اردیبهشت 1395
  • 00:37
تنظیمات 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() { … }

 

کاربر سایت

محمد ملکی

عضویت از 1394/03/02

  • دوشنبه 20 اردیبهشت 1395
  • 01:15

آقا خیلی ممنونم

خودم یه چیزهاییشو حذف کردم از نوشته های شما درست شد همونی شد که میخواستم

فقط یه سوال : من توو AdminAreaRegistration دیگه هیچ routi ندارم بعداً به مشکل نمی خورم؟

منظورم این متد هست

  public override void RegisterArea(AreaRegistrationContext context)
        {

            
        }

 

کاربر سایت

افشین ایمانی زاده

عضویت از 1393/12/24

  • دوشنبه 20 اردیبهشت 1395
  • 10:30

خیر مشکلی پیش نمیاد

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)