簡體   English   中英

如何生成一個 Url 到另一個 controller WebApi core 3.1

[英]How to generate a Url to another controller WebApi core 3.1

我正在嘗試生成指向另一個 controller 的鏈接,我只能創建到相同的 controller。

這適用於相同的 controller

string uri = Url.Link("T", new { token = "token" });

[Route("Taa", Name = "T")]
public  IActionResult SomeMethod(string token)
  {
      return Ok();
  }

我試過了:

Url.Link("Default", new { Controller = "Account", Action = "Login" });
Url.Route("Default", new { Controller = "Account", Action = "Login" }); (Route Does not exist)

真正的 Controller 和 Action 是:Validation 和 Validate

[HttpGet("validate", Name = "Validate")]
public IActionResult ValidateNewUser(string token)
  {     
      return Ok();
  }

您可以使用

Url.Link("Default", new { Controller = "Validation", Action = "Validate", token = "token" });

這是一個演示:

啟動(配置):

app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");
            });

Controller:

[ApiController]
    [Route("[controller]")]
    public class TestController : ControllerBase
    {
        public IActionResult Index()
        {
            var url = Url.Link("Default", new { Controller = "Validation", Action = "Validate", token = "token" });
            return Ok();
        }
    }

url 結果:

https://localhost:xxxx/Validation/Validate?token=token

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM