多年来,我已经做了相当多的ASP.NET API编程,但对于.NET Core和RazorPages来说,这是非常新的。我似乎无法让路由正常工作。使用ASPNET核心2.0的路由RazorPages
例如,我有一个索引页。 OnGet正常工作,如预期的那样,它返回Razor定义的页面。现在,我想补充的另一种方法,我们称之为测试索引页代码隐藏,像这样:
[Route("Test")]
public void Test()
{
Console.WriteLine("Test");
}
现在对于我的生活,我不能访问这条路线,既不是本地主机/索引/测试或本地主机/测试或者我能想到的任何其他错综复杂的路线。这是设计吗? localhost和localhost/index都返回默认的get方法。
这引起了我相当多的地方,我想在一个漂亮的URL中使用的所有者和产品ID显示产品的详细信息,像这样的麻烦:
products/{ownerid}/{productid}
正如上面提到的,我不能图到这个自定义漂亮的URL。如果我理解正确,映射到{ownerid}/{productid}路由的函数应该位于索引页代码隐藏中以便找到,或者我误会了吗?
谢谢你的帮助。
那是因为你使用的剃刀的页面,这是一次失败的尝试在重塑webforms。使用完整的MVC套件,你会好得多(Razor页面只支持单个获取和单个Post方法) –
另请注意,在Razor Pages中,控制器字是未知的。 “控制器”就是视图本身,所以如果你使用的是“IndexController”,那么你做错了什么。 –
控制器部分是一个错字,我的意思是页面。我明白你的意思。他们谈论了如此多的MVC背景,它从未跨过我的思维路线可能不被支持。感谢您解决这个问题。 – JasonX