路由到控制器中的 class 对象

Routing to class object in controller

是否可以创建路由,使用 class 调用控制器方法?

在此示例中,我使用了 GetPerson 方法,但 person 始终为 null。

我正在使用 GET

WebApiConfig
    config.Routes.MapHttpRoute(
                    name: "person",
                    routeTemplate: "person/{firstName}/{lastName}",
                    defaults: new { controller = "Person", action = "GetPerson" });

控制器

    public HttpResponseMessage GetPerson(Person person)
            {
                // person always null here
                //DO STUFF!
            }

型号

public class Person
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
    }

您缺少一个引用,告诉 Controller 从哪里获取 Person。

在您的情况下,将 [FromUri] 添加到您的参数中,如下所示:

public HttpResponseMessage GetPerson([FromUri] Person person)
    {
            //DO STUFF!
    }

您可以在 Asp.Net here

中阅读有关参数绑定的内容