我使用的是剃刀页面(不是View / Controller),我的目标是为同一页面构建以下两条路线:
它们应该导致两个不同的“动作” for line in file2:
和OnGetAsync(int id)
。
最初,我想在PageModel中使用路由属性,但得出的结论是RazorPages PageModel不支持它们-正确吗?现在,我正在尝试使用@page指令实现这一目标,但没有发现任何东西。我不想使用路由“配置设置”,因为我想使用它们在页面本地路由。
解决这个问题的正确方法是什么?
感谢您消除我的困惑!
答案 0 :(得分:2)
在一个Razor页面中不能有两个具有相同名称*的处理程序方法,无论参数声明有何不同。处理程序方法不像MVC中的操作方法那样构成路由选择过程的一部分。
实现所需目标的最佳方法是使用named handlers。然后,您可以选择是将处理程序方法的名称作为URL的一部分还是作为查询字符串值来包含。
*您甚至无法通过将“异步”附加到一个来区分处理程序方法名称。就Razor Pages而言,OnGet
和OnGetAsync
是相同的。