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

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

آموزشگاه برنامه نویسان

مشکل در مسیر یابی

جمعه, 29 اردیبهشت 1396 16:31

مشکل در مسیر یابی

با سلام و خسته نباشید

من ی Controller  دارم به اسم Posts که ی Action  با نام Show  داره به شکل زیر 

public class PostsController : Controller
    {
        AppDbContext db = new AppDbContext();

        // GET: /Posts/
        [Route("{lang}/{postId}/{postUrl}")]
        public ActionResult Show(string lang,int postId, string postUrl)
        {
            var _post = db.Posts.Single(post => post.Language.Cultur.Equals(lang.ToLower()) && post.Id == postId && post.ContentUrl.Equals(postUrl));
            if (_post ==  null)
            {
                return Redirect("/");
            }
            return View(_post);
        }
	}

حالا میخوام توی url  مثل مسیر زیر این Action  رو صدا بزنم 

http://localhost:11802/fa/Posts/1/Tour+ATAKOY+MARINA

ولی جواب نمید اینم کد های مربوط به Routing

 public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            routes.MapMvcAttributeRoutes();
            routes.MapRoute(
            name: "PostShow",
            url: "{lang}/{postId}/{postUrl}",
            defaults: new {lang="en", controller = "Posts", action = "Show" },
            constraints: new { postId = "\\d+" },
            namespaces: new[] { "ParsCms.Controllers" }
        );
            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new
                {
                    controller = "Home",
                    action = "Index",
                    id = UrlParameter.Optional
                },
                namespaces: new[] { "ParsCms.Controllers" }
            );
        }
    }

آکادمی برنامه نویسان تلگرام برنامه نویسان
جمعه, 29 اردیبهشت 1396 17:45

نقل قول : مشکل در مسیر یابی

روت را به شکل زیر تغییر دهید

url: "{lang}/Posts/{postId}/{postUrl}"

کسانی که از این پست تشکر کرده اند :
جمعه, 29 اردیبهشت 1396 18:50

نقل قول : مشکل در مسیر یابی

ممنونم استاد

وقتی این رو اضافه کردم سایت دیگه بالا نیومد . کد هارو پاک کردم و کد های پیشفرض رو گذاشتم ولی بازم بالا نمیاد - متن ارور 

کسانی که از این پست تشکر کرده اند :
جمعه, 29 اردیبهشت 1396 18:54

نقل قول : مشکل در مسیر یابی

با روت پیشرفرض تداخل داره

شروع روت خودتون رو باید کلمه ثابت بزارید مثلا  Posts اول باشه

کسانی که از این پست تشکر کرده اند :
جمعه, 29 اردیبهشت 1396 18:55

نقل قول : مشکل در مسیر یابی

استاد کامل کد هارو پاک کردم روت پیشفرض خود mvc  هست الان

کسانی که از این پست تشکر کرده اند :
جمعه, 29 اردیبهشت 1396 18:56

نقل قول : مشکل در مسیر یابی

حتما اشتباهی کردید

کد این خطا 403 هست واگر پیدا نمیکرد 404 ارور میداد

کسانی که از این پست تشکر کرده اند : علی شهریاری,
جمعه, 29 اردیبهشت 1396 19:01

نقل قول : مشکل در مسیر یابی

ممنونم استاد نام روت رو از name: "Default  رو به name:site  تغییر داده بودم ولی روت پیشفرض بود

کسانی که از این پست تشکر کرده اند :
جمعه, 29 اردیبهشت 1396 19:18

نقل قول : مشکل در مسیر یابی

استاد مشکل حل نشد . اینم کد های RoutConfig

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace ParsCms
{
    public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new
                {
                    controller = "Home",
                    action = "Index",
                    postId = UrlParameter.Optional
                },
                namespaces: new[] { "ParsCms.Controllers" }
            );
      

        }
    }
}

کسانی که از این پست تشکر کرده اند :
جمعه, 29 اردیبهشت 1396 19:39

نقل قول : مشکل در مسیر یابی

namespace درست است ؟

پروژه را کلی Rebuild کردید ؟

کد تعریف روت درست است

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

ارسال پاسخ برای این تاپیک

ارسال پاسخ مخصوص اعضا سایت می باشد ! میتوانید با حساب کاربری خود وارد سایت شده یا ثبت نام کنید