【问题标题】:When right clicking 'go to controller' from the view, I get an error ('unable to find a matching controller')从视图中右键单击“转到控制器”时,出现错误(“找不到匹配的控制器”)
【发布时间】:2020-05-06 19:48:25
【问题描述】:

当我右键单击 IActionResult Index() 方法并单击“转到查看”时,它会将我带到视图。

但是当我在视图内右键单击并单击“转到控制器”时,它显示“无法找到匹配的控制器”;为什么在这种情况下它只在一个方向上起作用?

控制器:

/Controllers/Registration/RegistrationController.cs

查看:

/Views/Registration/Index.cshtml

谢谢。

【问题讨论】:

    标签: c# asp.net asp.net-mvc asp.net-core model-view-controller


    【解决方案1】:

    这很可能,因为命名和结构约定将所有控制器放在同一个文件夹中,并将每个控制器的视图放在自己的文件夹中。所以不是这个

    控制器:

    /Controllers/Registration/RegistrationController.cs

    查看:

    /Views/Registration/Index.cshtml

    你的文件夹结构应该是这样的:

    控制器:

    /Controllers/RegistrationController.cs

    查看:

    /Views/Registration/Index.cshtml

    【讨论】:

    • 这解决了这个问题。所以最好的做法是将所有控制器放在同一个文件夹中?有没有办法解决这个问题,或者这是否需要为每个控制器目录创建特定的“解决方案”(将控制器链接到视图的方式)?
    • 是的,这是推荐的方法。有一种方法可以创建自己的结构并定义您选择的文件夹,但很抱歉我不记得该怎么做。您通常没有视图那么多的控制器,所以标准方式工作得很好
    【解决方案2】:

    这没什么大不了的。发生这种情况是因为我们使用控制器中存在的 Action 方法创建视图,即,我们首先在控制器中创建一个 action 方法,然后再创建其对应的视图。 您可以简单地转到解决方案资源管理器并查看视图和相应的控制器。 这可能是因为一个视图可以与一个或多个具有相同名称的操作方法相关,但所有具有相同名称的多个操作方法仅与具有该特定名称的一个视图相关。

    【讨论】:

      猜你喜欢
      • 2017-03-21
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 2017-11-15
      • 2018-06-20
      • 2021-01-27
      • 2017-03-16
      • 1970-01-01
      相关资源
      最近更新 更多