Widziałem, jak oba były używane, więc zastanawiam się, czy robią to samo lub różne rzeczy? Jeśli to drugie, jaka jest różnica?Czy należy używać parametru RouteParameter lub UrlParameter dla trasy internetowej programu ASP.NET?
Próbowałem odpowiedzieć na to pytanie osobiście, oglądając szablon aplikacji webowej MVC 4 (rc), ale niestety używa on obu, więc moje pomyłki pozostają. Oto co szablon zawiera:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
Aha .. Nawet nie zauważyłem, że nazwali różne metody na obiekcie tras. Ale ma to sens. Zastanawiam się, dlaczego w szablonie aplikacji sieci Web uwzględniono widoki i materiały mvc. Mam nadzieję, że wkrótce zostaną wprowadzone szablony SPA. Dzięki! :) – Mithon
Istnieje również inne zachowanie między dwoma z nich. Jeśli sprawdzisz ten post: http://stackoverflow.com/questions/19043266/in-asp-net-webapi-does-routeparameter-optional-mean-optional-part-of-the-url UrlParameter.Optional nie będzie wymagać aby określić parametry domyślne, podczas gdy RouteParameter.Optional będzie. –