У меня есть тестовый контроллер, где у меня есть одно действие индекса, которое принимает custid
в качестве аргумента.
так выглядит мой контроллер
public class TestController : Controller
{
// GET: Test
public ActionResult Index(int custid)
{
return View();
}
}
я добавил одну дополнительную маршрутизациюоператор в файле route.config.
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "custom1",
url: "{controller}/{id}",
defaults: new { controller = "Test", action = "Index", custid = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
, поэтому при доступе к действию тестового контроллера с URL-адресом, например localhost: 50675 / test / 101 , возникает ошибка.сообщение об ошибке, скажем
Словарь параметров содержит пустую запись для параметра 'custid' с необнуляемым типом 'System.Int32' для метода 'System.Web.Mvc.ActionResult Index (Int32)' в'WebAPICRUD.Controllers.TestController.Необязательный параметр должен быть ссылочным типом, обнуляемым типом или быть объявлен как необязательный параметр.Имя параметра: параметры
, но при доступе к действию тестового контроллера с URL-адресом, подобным localhost: 50675 / test? Custid = 101 , тогда ошибка не появляется.
, поэтому яне понимаю, какая ошибка в коде.
Что мне нужно сделать, в результате я могу выдать этот URL http://localhost:50675/test/101, который должен работать.пожалуйста, направь меня.спасибо