我有一个测试控制器,其中我有一个索引操作,可以接受
custid
作为论据。
这就是我的控制器的外观
public class TestController : Controller
{
// GET: Test
public ActionResult Index(int custid)
{
return View();
}
}
我在route中添加了一条额外的路由语句。配置文件。
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的url访问测试控制器操作时
本地主机:50675/test/101
然后是错误。错误消息说
参数字典包含参数“custid”的空条目
属于“不可为空的类型”系统。Int32'表示方法
“系统。网状物Mvc。ActionResult索引(Int32)'in
“韦巴皮克拉德。控制器。测试控制器'。必须输入可选参数
引用类型、可为空的类型或可声明为可选类型
参数参数名称:参数
但当使用类似url的url访问测试控制器操作时
本地主机:50675/测试?custid=101
然后就不会出错了。
所以我不明白代码中有什么错误。
我需要做的是,我可以发布这个url
http://localhost:50675/test/101
这应该管用。请引导我。谢谢