首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将ViewModel传递给Web-Api操作

将ViewModel传递给Web-Api操作
EN

Stack Overflow用户
提问于 2012-12-05 20:53:42
回答 2查看 1.4K关注 0票数 2

是否可以将ViewModel对象传递给WebApi控制器操作,而不是单独的参数?

而不是使用:

代码语言:javascript
复制
public class ContactsController : ApiController
{
    public IEnumerable<Contact> GetContacts(string p1, string p2)
    {
        // some logic
    }
}

我想使用:

代码语言:javascript
复制
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。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-06 04:45:22

除非另有说明,否则WebApi将使用请求的内容/正文反序列化复杂的模型。要告诉WebApi使用Url来构造模型,需要指定FromUri属性:

代码语言:javascript
复制
public IEnumerable<Contact> GetContacts([FromUri]TestVM testVM)
{
    // some logic
}
票数 6
EN

Stack Overflow用户

发布于 2020-05-31 01:03:12

我知道现在发布另一个答案有点晚了,但我认为它对使用.net核心作为web API服务的任何人都很有用

代码语言:javascript
复制
public IEnumerable<Contact> GetContacts([FromQuery]TestVM testVM)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13723722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档