【问题标题】:Binding of Control parameter returns NULL while using HTTP POST使用 HTTP POST 时,控制参数的绑定返回 NULL
【发布时间】:2012-07-04 15:20:01
【问题描述】:

我有一个控制器,它的方法根据参数的值返回一些响应。我正在尝试将 Json 数据发布到此控制器,但不知何故绑定不起作用。我正在使用 Fiddler 来测试我的控制器方法:

[AcceptVerbs(HttpVerbs.Post)]
public string Authenticate(string username)
{
    //some logic
    return "value";
}

现在,当我调试应用程序时,userName 总是返回 null。为了测试这个方法,我正在使用 Fiddler。请求的原始数据是:

POST http://localsite/Home/authenticate HTTP/1.1
User-Agent: Fiddler
Host: localhost:52774
x-requested-with: XMLHttpRequest
Content-Length: 20
Content-Type: application/json; charset=utf-8
Accept: application/json

{"username":"kunal"}

任何猜测我哪里出错了。

【问题讨论】:

    标签: c# .net asp.net-mvc-2


    【解决方案1】:

    在 MVC2 中,没有开箱即用的 JSON 模型绑定器支持。

    如果您不打算升级到 MVC3/4,那么您可以找到一篇好文章:Sending JSON to an ASP.NET MVC Action Method Argument 如何在 MVC2 应用中启用它。

    基本上你需要创建一个JsonValueProviderFactory并将其添加到ValueProviderFactories...

    幸运的是,您可以在 ASP.NET MVC 2 Futures library 中找到实现

    【讨论】:

    • formscollection 是接收发布值的唯一方法吗?
    • 如果您不想使用链接文章中描述的JsonValueProviderFactory,那么我想是的。
    猜你喜欢
    • 2016-06-08
    • 1970-01-01
    • 2017-06-05
    • 1970-01-01
    • 2020-11-03
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多