gpt4 book ai didi

c# - ASP.NET Web API 使用 Url.Action 生成 URL

转载 作者:IT王子 更新时间:2023-10-29 04:04:57 26 4
gpt4 key购买 nike

如何在 Web API 中生成相同的 URL?

var url = Url.Action("Action", "Controller", new { product = product.Id, price = price }, protocol: Request.Url.Scheme);

附言

URL 应该生成到 MVC Controller /操作,但来自 Web API。

基本上:向我的 api/generateurl 发出一个 get 请求,它将返回一个 URL 到:

http://example.com/controller/action?product=productId&price=100

最佳答案

也许 Web API Controller 中与 Url.Action 最接近的助手是 Url.Link 方法,它将通过路由名称、 Controller 名称、操作名称和路由参数(如果需要)生成 URL。

这是一个简单的例子

默认App_start/RouteConfig.cs

routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

Web API Controller :

public class MyWebApiController : ApiController
{
public string Get()
{
var url = this.Url.Link("Default", new { Controller = "MyMvc", Action = "MyAction", param1 = 1, param2 = "somestring" });
return url;
}
}

MVC Controller

public class MyMvcController : Controller
{
public ActionResult MyAction(int param1, string param2)
{
// ...
}
}

WebApi Controller 生成的 URL 将为 http://myDomain/MyMvc/MyAction?param1=1&param2=somestring

我没有找到如何传递协议(protocol)/url 模式,但它只是一个字符串,如果你知道协议(protocol)应该是什么,你可以操纵它。

这可能对协议(protocol)部分有帮助: Generate HTTPS link in Web API using Url.Link

关于c# - ASP.NET Web API 使用 Url.Action 生成 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25245065/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com