c# - 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;
但同样的错误。
我错过了什么?为什么它不在我的控制器中抱怨而在我的外部类中呢?
解决方案
因为您的自定义控制器确实继承自控制器类。这意味着您可以访问基类中的 Url 属性。但是,当您将代码移动到单独的类时,您无权访问该属性。
解决此问题的方法是参数化您使用 Url 调用的函数。
推荐阅读
- elasticsearch - ElasticSearch 6.4:未存储的存储字段
- javascript - 在php中的表中添加onclick事件
- wordpress - 如何使用 gform_product_info 更新重力表格上的总条目
- c# - 从 url MSBUILD xml 恢复 Nuget 包
- java - jQuery 终端 - 以字符串形式读取 Java 中的 shell 响应会在 jQuery 终端中显示奇怪的字符
- python - 嵌入时出错:无法将字符串转换为浮点数:'ng'
- wordpress - Woocommerce 只读计费字段 - 选择和单选字段
- c# - Entityframework为什么耦合表会得到重复值?
- symfony - 如何调试捆绑中的 DependencyInjection ?
- websphere - websphere application server 8.5.5 创建了很多到 ldap 的连接