• 25-06-2018, 20:33:20
    #1
    Arkadaşlar selam,
    Kategori linki çalışıyor fakat Ürün detay linki 400 bad request sayfasını açıyor.Nereyi gözden kaçıyorum acaba.

    RouteConfig.cs

     routes.MapRoute(
                name: "Category",
                url: "{alias}",
                defaults: new { controller = "Category", action = "List" }
                );
                routes.MapRoute(
                name: "Product",
                url: "{alias}",
                defaults: new { controller = "Product", action = "Detail" }
                );
    CategoryController.cs

    public ActionResult List(string alias,List<int> att, int page = 1)
            {
                int catId = 0;
                var isCat = _categoryService.Find(c => c.Alias == alias);
                if(isCat!=null)
                {
                    catId = _categoryService.Find(c => c.Alias == alias).Id;
                }
                //cat = Convert.ToInt16(Request.QueryString["cat"]);
                else
                {
                    return new HttpStatusCodeResult(System.Net.HttpStatusCode.BadRequest);
                }
    ProductController.cs

     public ActionResult Detail(string alias)
            {
                ViewData["CatList"] = _categoryService.listcek();
    
                Product Detail = new Product();
                int id = 0;
                var isProduct = _productService.Find(c => c.Alias == alias);
                if (isProduct != null)
                {
                   
                    Detail = _productService.Find(x => x.Alias == alias);
                    id = _productService.Find(x => x.Alias == alias).Id;
                }
                //cat = Convert.ToInt16(Request.QueryString["cat"]);
                else
                {
                    return new HttpStatusCodeResult(System.Net.HttpStatusCode.BadRequest);
                }
  • 25-06-2018, 20:42:05
    #2
    İki url de alias olmaz. Hangisi kategori hangisi ürün anlayamaz. Bunu farklılaştırmanız lazım.
  • 25-06-2018, 20:54:53
    #3
    Böyle deneyin.
    routes.MapRoute(
    name: "Category",
    url: "kategori/{alias}",
    defaults: new { controller = "Category", action = "List" }
    );
    
    routes.MapRoute(
    name: "Product",
    url: "urun/{alias}",
    defaults: new { controller = "Product", action = "Detail" }
    );
  • 25-06-2018, 23:14:41
    #4
    Clable adlı üyeden alıntı: mesajı görüntüle
    İki url de alias olmaz. Hangisi kategori hangisi ürün anlayamaz. Bunu farklılaştırmanız lazım.
    Daryl_Dixon adlı üyeden alıntı: mesajı görüntüle
    Böyle deneyin.
    routes.MapRoute(
    name: "Category",
    url: "kategori/{alias}",
    defaults: new { controller = "Category", action = "List" }
    );
    
    routes.MapRoute(
    name: "Product",
    url: "urun/{alias}",
    defaults: new { controller = "Product", action = "Detail" }
    );
    ama benim hem kategoriyi hemde ürünü direk seo url'ye göre getirmem gerekli. mvc kullanan ve bu şekil yapan siteler mevcut.