Robię sklep w MVC i jak na razie wszystko szło dobrze do wczoraj. Jeszcze w piątek jak coś tam dopisałem i z debugowałem to wszystko działało. Wczoraj dodałem style bootstrapa do widoku i drugą trasę w pliku RouteConfig i się sypło. Mam błąd HTTP Error 403.14 - Forbidden. Spróbowałem naprawić to różnymi sposobami wyczytanymi w necie ale nic nie pomaga. Dodam,że jak po adresie localhost:1955/ wpiszę "Home" czyli localhost:1955/Home to wszystko działa, ale nie działa mi domyślana trasa i nie mogę sobie z tym poradzić. Pogrzebałem troche na serwerze IIS i nic próbowałem zmieniać w pliku RouteConfig ale nic to nie dało.
Na stronie MS$ znalazłem na temat kodów błędu w IIS 7 takie coś 403.14 - odmowy katalogu. - tylko ja już włączyłem na serwerze przeglądanie katalogów i w aplikacji według instrukcji wyświetlającej mi się wraz z błędem.
Plik RoutConfig
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace SportsStore.WebUI
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: null,
url: "Strona{page}",
defaults: new { Controller = "Product", action = "List" }
);
// nawet jak tutaj zmienie na starą trasę czyli zamiast Product dam Home,
// a zamiast List, Index to też już nie działa
routes.MapRoute(
name: "Default",
url: "{contoller}/{action}/{id}",
defaults: new { controller = "Product", action = "List", id = UrlParameter.Optional }
);
}
}
}
Plik List
@model SportsStore.WebUI.Models.ProductsListViewModel
@{
ViewBag.Title = "Produkty";
}
@foreach (var p in Model.Products)
{
<div class="well">
<h3>
<strong>@p.Name</strong>
<span class="pull-right label label-primary">@p.Price.ToString("c")</span>
</h3>
<span class="lead">@p.Description</span>
</div>
}
<div class="btn-group pull-right">
@Html.PageLinks(Model.PagingInfo, x => Url.Action("List", new { page = x}))
</div>
Plik Product
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SportsStore.Domain.Entities
{
public class Product
{
public int ProductID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public decimal Price { get; set; }
public string Category { get; set; }
}
}