首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ASP.Net Web如何才能在从查询字符串绑定模型时不需要前缀?

ASP.Net Web如何才能在从查询字符串绑定模型时不需要前缀?
EN

Stack Overflow用户
提问于 2012-06-05 01:33:43
回答 1查看 1.3K关注 0票数 2

在ASP.Net Web API (RC)中我有一个测试模型类,如下所示:

代码语言:javascript
运行
复制
[ModelBinder]
public class TestRequest
{
    public string Foo { get; set; }
    public string Bar { get; set; }
}

我的控制器看起来像这样:

代码语言:javascript
运行
复制
public class TestController : ApiController
{
    public TestRequest Get(TestRequest model)
    {
        return model;
    }
}

现在,如果我通过以下方式调用操作:

http://.../test?foo=abc&bar=xyz

这两个值都不绑定,因为模型绑定器需要模型前缀,所以我实际上需要调用:

http://.../test?model.foo=abc&model.bar=xyz

我可以理解这是为了让其他动作参数可以正确绑定,但在我的例子中,模型是一种封装所有可能的动作参数的干净方式,这样我就不需要有一个带有一大堆可选参数的讨厌的动作方法签名。它还允许轻松地进行模型验证。

有没有什么简单的方法可以使模型绑定的行为与MVC或POST请求中的行为相同?

EN

回答 1

Stack Overflow用户

发布于 2012-06-08 14:46:20

在您发布的示例中,从模型类中删除ModelBinder属性应该是有效的。对于更复杂的方法签名,您会遇到一些问题,请参阅Rick Strahl的评论:http://blogs.msdn.com/b/jmstall/archive/2012/04/16/how-webapi-does-parameter-binding.aspx#10302750

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10885529

复制
相关文章

相似问题

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