使用HTTP POST时,Control参数的绑定返回NULL

时间:2012-07-04 06:40:36

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

我有一个控制器,其方法根据参数的值返回一些响应。我试图将Json数据POST到此控制器,但不知何故绑定不起作用。我正在使用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"}

我猜错了。

1 个答案:

答案 0 :(得分:0)

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

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

基本上,您需要为JsonValueProviderFactory ...

创建并添加ValueProviderFactories

幸运的是,您可以在ASP.NET MVC 2 Futures library

中找到实施方案