Мое приложение работает нормально, но я продолжаю получать эти исключения в журналах log4net:MVC 3 исключение: словарь параметров содержит нулевую запись для параметра «id» типа, отличного от нуля, «System.Int32» для метода «System.Web.Mvc
The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Agency(Int32)' in 'COPSGMIS.Controllers.QuestionController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter.
Не знаете, что происходит не так?
Мой контроллер:
public ActionResult Agency(int id)
{
QuestionDAL qd = new QuestionDAL();
var agency = qd.GetAgencyDetails(id);
agency.Reviews = qd.GetAgencyReviews(id);
return View(agency);
}
Мои маршруты:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
Вы можете сделать все параметры нулевыми и проверить нулевые значения, но это не идеальное решение. Гораздо лучше создать фильтр действий так, как он описан здесь: http://axelzarate.wordpress.com/2013/11/18/parameter-validation-in-asp-net-mvc-4/ –