我有这样的代码:POST JSON与MVC 4 API控制器
$.ajax({
type: "POST",
url: "/api/slide",
cache: false,
contentType: "application/json; charset=utf-8",
data: '{"Title":"fghfdhgfdgfd"}',
dataType: "json",
的,这是我的CONTROLER:
public class SlideController : ApiController
{
// POST /api/Slide
public void Post(string Title)
{
}
当我运行的代码,并调用/ API /幻灯片时,[标题]没有数据,为空。
如何将JSON发布到API控制器?
POST http://127.0.0.2:81/api/slide HTTP/1.1
Host: 127.0.0.2:81
Connection: keep-alive
Content-Length: 18
Origin: http://127.0.0.2:81
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1
Content-Type: application/json; charset=UTF-8
Accept: application/json, text/javascript, */*; q=0.01
Referer: http://127.0.0.2:81/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Title=fghfdhgfdgfd
我无法理解它是如何知道我们试图调用哪个动作的?在这个控制器中,我们可以有数百个。 – webdeveloper
它是RESTful和传统的。你在你的jQuery请求中使用POST动词=> Post动作被调用。如果您使用'GET'动词(例如直接在您的浏览器地址栏中输入动作名称)=> Get动作将被调用。所以你不能有数百个。标准的HTTP动词是'GET','POST','PUT'和'DELETE',这些是你应该使用的动作名称。当然,你总是可以违反标准的RESTful约定=>继续并在你的'〜/ App_Start/WebApiConfig.cs'文件中修改路由,以便在URL中包含动作名称。 –
我想知道数据之间有什么区别:JSON.stringify({title:“fghfdhgfdgfd”})和data:'{Title:“fghfdhgfdgfd”}',我最终使用了什么? – user1615362