2014-01-12 41 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一秒鐘將更新帖子 –

相關問題