Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 路线未使用_C#_Asp.net Core_Asp.net Core Mvc - Fatal编程技术网

C# 路线未使用

C# 路线未使用,c#,asp.net-core,asp.net-core-mvc,C#,Asp.net Core,Asp.net Core Mvc,我有一个控制器,其动作如下: public IActionResult Edit(long? page) 我在我的启动类中的UseEndpoints中定义了以下路由 endpoints.MapControllerRoute( name: "Area", pattern: "{area:exists}/{controller=Home}/{action=Index}/{page?}"); 但是,未拾取与控制器操作匹配的路由。 当我将路由更改为此 endp

我有一个控制器,其动作如下:

public IActionResult Edit(long? page)
我在我的
启动
类中的
UseEndpoints
中定义了以下路由

endpoints.MapControllerRoute(
name: "Area",
pattern: "{area:exists}/{controller=Home}/{action=Index}/{page?}");
但是,未拾取与控制器操作匹配的路由。 当我将路由更改为此

endpoints.MapControllerRoute(
name: "Area",
pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
路由正在工作,但显然方法的
page
参数是
null
,因为路由需要
id
参数

对于我遗漏的
id
参数,是否有需要添加的特殊情况,以便使用
页面
参数的路由能够正常工作?

有不能用作路由段或参数名称的情况

使用
页面
作为路线参数是常见错误。

没有区别

 between pattern "{area:exists}/{controller=Home}/{action=Index}/{id?}"); and 
pattern: "{area:exists}/{controller=Home}/{action=Index}/{page?}");

因为您的url看起来像“…区域/controller/edit/12345” 它将以同样的方式工作

 for action public IActionResult Edit(long? page)  
and for public IActionResult Edit(int? id)

但是正如前面提到的@FeiHan不要使用单词“page”来路由,最好只留下“{area:exists}/{controller=Home}/{action=Index}/{id?}”)或者你可以选择任何其他名称来代替“id”。

这实际上就是问题所在。因为我们引入了Microsoft identity,所以我们需要一个MVC构建器,并尝试通过
AddRazorPages()
AddMvc()
添加它。这在以前的代码库中是不存在的。使用
AddControllersWithViews()
解决了这个问题,并为
AddMicrosoftIdentityUI()提供了所需的
MvcBuilder