是否可以将ViewModel对象传递给WebApi控制器操作,而不是单独的参数?
而不是使用:
public class ContactsController : ApiController
{
public IEnumerable<Contact> GetContacts(string p1, string p2)
{
// some logic
}
}我想使用:
public class ContactsController : ApiController
{
public IEnumerable<Contact> GetContacts(TestVM testVM)
{
// some logic
}
}
public class TestVM
{
public string P1 { get; set; }
public string P2 { get; set; }
}这似乎对我不起作用。当我调用/api/contacts/?P1=aaa&P2=bbb时,不会填充testVM对象(null)。
另外,我希望TestVM定义有效属性,并在我的API控制器中使用ModelState.IsValid。
发布于 2012-12-06 04:45:22
除非另有说明,否则WebApi将使用请求的内容/正文反序列化复杂的模型。要告诉WebApi使用Url来构造模型,需要指定FromUri属性:
public IEnumerable<Contact> GetContacts([FromUri]TestVM testVM)
{
// some logic
}发布于 2020-05-31 01:03:12
我知道现在发布另一个答案有点晚了,但我认为它对使用.net核心作为web API服务的任何人都很有用
public IEnumerable<Contact> GetContacts([FromQuery]TestVM testVM)https://stackoverflow.com/questions/13723722
复制相似问题