2014-01-12 42 views
1

以下代码可用于查找是否从PostUser方法中删除字符串参数。 但是,当我添加blob与404失败。我做错了什么?使用XMLHttpRequest将数据tback发布到具有参数的网络服务器

控制器

public class LongPollController : ApiController 
{ 
    public User PostUser(string blob) 
    { 
     var user = new User 
     { 
      Name = "John Smith", 
      Age = 20, 
     }; 

     return user; 
    } 
} 

CSHTML

<div id="message">Waiting....</div> 

@section scripts { 
<script> 
    var data = new Object(); 
    data.blob = 'Hello World'; 

    var request = new XMLHttpRequest(); 
    request.onreadystatechange = function() { 
     if (request.readyState == 4 && request.status == 200) { 
      handleUser(JSON.parse(request.responseText)); 
     } 
    }; 
    request.open("POST", "api/longpoll/user"); 
    request.setRequestHeader("Accept", "application/json"); 
    request.setRequestHeader('Content-Type', 'application/json'); 
    request.send(JSON.stringify(data)); 

    function handleUser(user) { 
     var msg = document.getElementById('message'); 
     msg.innerHTML = 'Name: ' + user.Name + '<br />' + 
      'Age: ' + user.Age + '<br />' 
    } 

</script> 

什么是正确的方式我的数据添加到request.send()这样的WebAPI选秀权他们?

回答

1

Web api与asp.net mvc控制器有些不同,Web api的默认映射器也有点不同。 1.创建C#类在你情况下,它也可以运行保持输入到网页API

​​

2.改变

public User PostUser(string blob) 

public User PostUser(JsData input) 

,但随后你需要修改web.api的路由

+0

但是如果我想将其他方法放在longpoll控制器上呢? – user1515024

+0

我测试了你的建议变化,我仍然去404。 – user1515024

+0

@ user1515024一秒钟将更新帖子 –

相关问题