gpt4 book ai didi

asp.net-mvc-5 - 如何使用不同参数类型的同一个路由?

转载 作者:行者123 更新时间:2023-12-02 08:40:04 26 4
gpt4 key购买 nike

我有一个 Api Controller ,它有两个不同的操作,它们采用不同的参数类型。

    // GET: users/sample%40email.com
[Route("users/{emailAddress}")]
public IHttpActionResult GetUser(string emailAddress)

// GET: users/1D8F6B90-9BD9-4CDD-BABB-372242AD9960
[Route("users/{reference}")]
public IHttpActionResult GetUserByReference(Guid reference)

问题是当我向其中一个发出请求时,发现多个操作匹配。看看其他答案,我认为我需要像这样在 WebApiConfig 中设置路由......

            config.Routes.MapHttpRoute(
name: "apiEmail",
routeTemplate: "api/{controller}/{action}/{email}"
);

config.Routes.MapHttpRoute(
name: "apiReference",
routeTemplate: "api/{controller}/{action}/{reference}"
);

我需要做什么才能根据我传入的参数类型调用每个操作?

我对 Web.Api 非常陌生,如果有任何额外的解释文本,我们将不胜感激。

最佳答案

您确实喜欢下面启用属性路由的方法声明://声明带有guid 1的方法

// GET: users/1D8F6B90-9BD9-4CDD-BABB-372242AD9960
[Route("users/{reference:guid}")]
public IHttpActionResult GetUserByReference(Guid reference)

并声明其他方法,如下所示

// GET: users/sample%40email.com
[Route("users/{emailAddress}")]
public IHttpActionResult GetUser(string emailAddress)

请告诉我,这个工作适合你吗?

关于asp.net-mvc-5 - 如何使用不同参数类型的同一个路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30641012/

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