【问题标题】:ASP Net Core Getting route valuesASP Net Core 获取路由值
【发布时间】:2020-06-12 08:15:59
【问题描述】:

我在 net core 3.0 应用程序中有以下 API 方法

    [HttpGet]
    [Route("Messages/{MessageId}/English")]
    [Route("Messages/{MessageId}/Danish")]
    //[Authorize]
    public ActionResult Transalte(string MessageId)
    {           
        //Do something based on language

        return Ok();
    }

在控制器内部,如果 URL 是 Messages/38374/English,我想使用一种逻辑,如果我使用 Messages/38374/Danish,我想使用另一种逻辑。

但我不知道如何在控制器内获取英语或丹麦语路由值。

有什么想法吗?

谢谢

【问题讨论】:

    标签: asp.net-core routes


    【解决方案1】:

    分成两个动作:

        [HttpGet]
        [Route("Messages/{MessageId}/English")]
        public ActionResult Transalte(string MessageId)
        {           
            //Do something based on language
    
            return Ok();
        }
    
        [HttpGet]
        [Route("Messages/{MessageId}/Danish")]
        public ActionResult Transalte(string MessageId)
        {           
            //Do something based on language
    
            return Ok();
        }
    

    在一个动作中分离:

            [HttpGet]
            [Route("Messages/{MessageId}/English")]
            [Route("Messages/{MessageId}/Danish")]
            public ActionResult Transalte(string MessageId)
            {
                string path = Request.Path;
    
                if (path.Contains("English"))
                    ;//Do something based on English
    
                if (path.Contains("Danish"))
                    ;//Do something based on Danish
    
    
                return Ok();
            }
    

    【讨论】:

    • 为什么要坚持一个逻辑?代码重用:) 我将答案标记为正确,但我希望有一个更优雅的解决方案
    • 嗨,@Luka,您尝试过在 ASP.NET Core 3.1 MVC 中进行本地化吗? syncfusion.com/blogs/post/…
    猜你喜欢
    • 2021-01-11
    • 1970-01-01
    • 1970-01-01
    • 2017-04-22
    • 2020-10-13
    • 2016-12-02
    • 2019-03-23
    • 2017-04-06
    • 2022-11-02
    相关资源
    最近更新 更多