Net Core教程

C# 获取同controller里面其他方法的URL并通过HttpContext并传递

本文主要是介绍C# 获取同controller里面其他方法的URL并通过HttpContext并传递,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目标:同一个controller中,将方法二的路由通过方法一返回的response的传递给UI。路由需要包含controller的RoutePrefix 和方法二本身的Route.
controller 如下:

[Authorize]
[RoutePrefix("api/ControllerName")]
public class TestController : BaseController
{
    [HttpGet]
          [Route("create")]
          [ResponseType(typeof( ))]
          public Task<IHttpActionResult> MethodOne([FromBody] string pram1){}
        
    [HttpPut]
          [Route("update")]
          [ResponseType(typeof( ))]
          public Task<IHttpActionResult> MethodTwo([FromBody] string pram1){}
}

因为要求不能直接命名路由,所以通过属性获取在方法一中加入以下code:

public Task<IHttpActionResult> MethodOne([FromBody] string pram1)
{
    var RoutePrefix = ControllerContext.ControllerDescriptor.GetCustomAttributes<System.Web.Http.RoutePrefixAttribute>()
                                       .FirstOrDefault()
                                       ?.Prefix;
     HttpContext.Current.Response.AddHeader(nameof(MethodTwo), $"{RoutePrefix}/nameof(MethodTwo)/{pram1}");
}

可以基本实现要求。

这篇关于C# 获取同controller里面其他方法的URL并通过HttpContext并传递的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!