首页新闻找找看学习计划

asp.net core webapi querystring问题

0
悬赏园豆:50 [已关闭问题] 关闭于 2017-05-17 12:24

在webapi2.2中:

http://xxxx:xx/api/test/1等价于http://xxxx:xx/api/test?id=1

这两个请求都会匹配到controller中

public string Get(string id) 这个方法

 

但是在asp.net core中,不知道如何才能实现2.2中的querystring的方式。

麻烦各位指点迷津。谢谢!

songmc的主页 songmc | 初学一级 | 园豆:61
提问于:2017-05-16 21:44
< >
分享
所有回答(1)
1

可以用命名路由。

Route("api/test/{id}")
public IActionResult XXX(int id, [FromUri]Params params)
{

}

class Params
{
    public int Id { get; set; }
}
幻天芒 | 园豆:36594 (高人七级) | 2017-05-16 21:52

谢谢您的回复,好像core里没有FromUri这个特性了。现在的代码如下:

    [HttpGet]
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }

    // GET api/values/5
    [Route("{id}")]
    public string Get(int id)
    {
        return "value";
    }

以前2.2的时候 用querystring还是/test/id这两种方式都可以匹配到第二个方法,但是换到core以后,只能通过api/test/id的方式了。所以想知道2.2的querystring的写法在core里应该怎么写。用[FromQuery]也不行。

支持(0) 反对(0) songmc | 园豆:61 (初学一级) | 2017-05-16 22:02

@songmc: 要看你用的是mvc还是webapi~另外检查你的默认路由配置。

支持(0) 反对(0) 幻天芒 | 园豆:36594 (高人七级) | 2017-05-16 23:18

@幻天芒: 用的是webapi,路由那部分没做配置。

支持(0) 反对(0) songmc | 园豆:61 (初学一级) | 2017-05-16 23:54

@songmc: 看了下,Core里面确实没有FromUri,但是有更明确的FromQuery,FromHeader 等。

支持(0) 反对(0) 幻天芒 | 园豆:36594 (高人七级) | 2017-05-17 11:42

@幻天芒: 多谢。

    // GET api/values/5
    [HttpGet("{id}")]
    public string Get([FromQuery]int id)
    {
        return "value";
    }

貌似这样写也不行。

支持(0) 反对(0) songmc | 园豆:61 (初学一级) | 2017-05-17 11:57

@songmc: 你最好参考下我最开始给出的那段代码~你这样一个id是搞不定所有的。

支持(0) 反对(0) 幻天芒 | 园豆:36594 (高人七级) | 2017-05-17 12:18

@幻天芒: 谢谢。

支持(0) 反对(0) songmc | 园豆:61 (初学一级) | 2017-05-17 12:23

@幻天芒: 谢谢,你之前说的我之前已经尝试过了。虽然没得到答案,还是非常感谢你的帮助。

支持(0) 反对(0) songmc | 园豆:61 (初学一级) | 2017-05-17 12:25

@songmc: 看到你的原始需求了,仅仅是实现两个请求绑定到一个controller上。

可以配置两个Route即可:

[HttpGet("/xxx/{id}")]
[HttpGet("/xxx")]
public int Get(int id)
{
   return id;  
}
支持(0) 反对(0) 幻天芒 | 园豆:36594 (高人七级) | 2017-05-17 12:40

@幻天芒: 谢谢,这样可以,需要把controller上面的特性去掉。不好意思,问题我刚才关闭了,怎么给你圆豆呢。

支持(0) 反对(0) songmc | 园豆:61 (初学一级) | 2017-05-17 12:53

@songmc: 不用了。

支持(0) 反对(0) 幻天芒 | 园豆:36594 (高人七级) | 2017-05-17 13:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册