首页 > 解决方案 > Url.Action 在当前上下文中不存在

问题描述

我正在使用 ASP.Net 核心。

我有一个函数,我正试图移动到一个单独的类,由多个控制器调用。

此函数将构建一个包含链接的 pdf。对于链接,我使用:

string urlMeeting = Url.Action("Detail", "Event", new { id = "meeting-" + MeetingID });

它在我的控制器中工作得非常好,但是当我将函数从控制器移动到同一个项目中的一个单独的类中时,我不断得到"The name Url does not exist in the current context".

我尝试添加using Microsoft.AspNetCore.Mvc;但同样的错误。

我错过了什么?为什么它不在我的控制器中抱怨而在我的外部类中呢?

标签: c#

解决方案


因为您的自定义控制器确实继承自控制器类。这意味着您可以访问基类中的 Url 属性。但是,当您将代码移动到单独的类时,您无权访问该属性。

解决此问题的方法是参数化您使用 Url 调用的函数。


推荐阅读