【问题标题】:Create a url that passes values to controller action创建一个将值传递给控制器​​操作的 url
【发布时间】:2017-12-14 12:57:16
【问题描述】:

我想创建一个Url,我可以通过电子邮件将其发送到控制器中的某个操作,并将一个 Id 和一个令牌传递给该操作。到目前为止,这是我的代码:

var action = new UrlActionContext
{
    Action   = "Verify",
    Controller = "Auth",
    Values = id, token
};
var url = UrlHelperExtensions.Action(action);

UrlHelperExtensions.Action 期待 IUrlHelper 但是,我无法使用该接口使其工作。有人可以解释一下我如何能够形成一个Url 来执行此操作吗?

我似乎只能找到 Asp.Net MVC 项目的解决方案,而我使用的是 Asp.Net Core 2.0。

【问题讨论】:

  • .NET Core 与 .NET MVC 不同。 .NET Core 是 .NET 的新版本,与旧的 .NET Framework 和 Xamarin 并驾齐驱。 .NET Standard 库开始为所有这些提供通用 API。 blogs.msdn.microsoft.com/dotnet/2016/09/26/… 。您可以基于 .NET Core 框架、API 或大多数其他类型的程序创建 MVC 应用程序。因此,有必要询问您尝试为哪种应用创建 URL?
  • 什么类型的应用程序正在生成这个 URL 以及在什么上下文中?如果您在后台进程中创建此 url(无法访问请求),那么您可能很难干净地创建 IUrlHelper - 请参阅 ASP.Net Core 2.0: Creating UrlHelper without request
  • @ADyson 这是一个 Asp.Net Core 2.0 应用程序。当用户点击注册时,我想生成一个带有他们的 Id 和 Token 的 Url,指向控制器上的一个动作,所有这些都在 webapp 中。
  • @CalC 我不确定这是否是我的问题含糊不清,但我认为会有一个相对简单的解决方案。我只想生成一个类似 `localhost:12345/Auth/VerifyEmail=UserId,Token 的 url
  • MVC 或 Web API 项目?

标签: asp.net asp.net-core


【解决方案1】:

对于 ASP.Net Core 2.0,IUrlHelper 可用作控制器的属性。 ControllerBase.Url 是一个 IUrlHelper 实例。你应该这样使用它:

var url = Url.Action(nameof(DoSomething), new { id = 10 });

【讨论】:

    猜你喜欢
    • 2011-08-17
    • 1970-01-01
    • 2017-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多