我知道它的一般方法:
var expected = true;
var returnValue = "something";
var B = sinon.stub();
B.returns({type: returnValue});
//Act
var actual = A(returnValue); //use webm or local
//Assert
deepEqual(actual, expected);
但如果我这样做:
routes.MapRoute
(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
运行项目不会出错。我的 routes.MapRoute
(
name: "Defaults",
url: "Home/Index/1"
);
中有Controller = Home
Action = Index()
,但是当我在浏览器中输入HomeController
时,为什么会出错?
错误:匹配的路线不包含'控制器'路线价值, 这是必需的。
路由中必须使用哪个部分?
另一个问题是:为什么我们需要http://localhost:1702/Home/Index/1
?如果我给Route Name
,它的工作正常,甚至存在多个路由,如name=""
答案 0 :(得分:0)
你需要这个:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
答案 1 :(得分:0)
url是为最终用户定义url结构。您甚至可以将其更改为
url: "{action}/{controller}/{id}"
所以要了解哪个是控制器,哪个是动作,你必须提供url结构。