2016-08-04 60 views
0

如何通過郵寄方式發送純文本控制器發送純文本到控制器mvc4

public ActionResult mappingNodes(string model) { 
    var test = model; 
    return Json(new { foo = "bar"}); 
} 

$http.post("/msm/test/mappingNodes", postModel, { headers: { 'Content-Type': 'text/plain'}}) 

如果我選擇了postModel一個字符串,如「ABC」或'{model : "abc"}'我在控制器端獲得null。

如果我更改參數Content-Typeapplication/jason我得到「ABC」在控制器端,如果如果postModel設置的postModel設置爲'{model : "abc"}'爲「ABC」我得到的錯誤狀態代碼500在我的errorCallback函數。

回答

0

您可以將文本追加到服務器URL。

像這樣:

$http.post("/msm/test/mappingNodes/yourtext", postModel, { headers: { 'Content-Type': 'text/plain'}}) 

,或者該值是一個變量:

$http.post("/msm/test/mappingNodes/" + value, postModel, { headers: { 'Content-Type': 'text/plain'}}) 
+0

如果我嘗試你的建議,並將'postModel'設置爲'{model:「{\」abc \「:\」test \「}」}'我的errorCallback中還有狀態碼500。 – StellaMaris

0

通過查詢字符串(URL編碼):

$http.post("/msm/test/mappingNodes?postModel=" + postModel) 

或者包括它在發佈數據中:

$http.post("/msm/test/mappingNodes", { postModel: "myvalue" }) 
0

更新與[FromBody]參數的action屬性

public ActionResult mappingNodes([FromBody]string model) { 
    var test = model; 
    return Json(new { foo = "bar"}); 
} 

下面是一個例子客戶端請求。

POST http://localhost:5076/msm/test/mappingNodes HTTP/1.1 
User-Agent: Fiddler 
Host: localhost:5076 
Content-Type: text/plain 
Content-Length: 5 

"abc" 
+0

我試過它通過$ http.post(「/ msm/test/mappingNodes」,「abc」,{headers:{'Content-Type':'text/plain'}})'但是變量'model' in控制器爲空。 – StellaMaris

+0

嘗試相同的請求,但與內容類型作爲應用程序/傑森,看看是否有所作爲 – Nkosi

+0

我得到了同樣的結果,就像我在我的開始發佈'erro代碼500'中所述。 – StellaMaris

1

你應該發送數據的JavaScript陣列中的控制器,就像這樣:

$http.post("/msm/test/mappingNodes", { model : postModel }, { headers: { 'Content-Type': 'text/plain'}}) 

注意,參數的控制器model這個名字,必須JavaScript的數組中鍵model匹配。

+0

我不知道在你的建議中「Content-Type」:'text/plain''是否是正確的參數。在你的情況下,我會選擇'Content-Type':'application/json',因爲你的對象'{model:postModel}'的類型不是純文本。 – StellaMaris

+0

我不知道你用什麼發送POST請求,但用jQuery我這樣做'var request = $ .ajax({url:'myurl', type:「POST」, cache:false, data:{someId:id}, datatype:「json」 }) 請求。完成(功能(數據){// 代碼 })} )' 其中'dataType'是你期待從服務器返回的數據的類型。 它與我的控制器'[HttpPost] 公共異步任務 myController的(字符串someId)'運作良好 –

相關問題