2017-02-23 68 views
0

我正在尋找如何在ASP.Net Core中將參數從Ajax請求傳遞到Web API控制器的方式,如經典ASP中的query string。 我在下面嘗試過,但沒有奏效。如何將參數從Ajax請求傳遞到Web API控制器?

查看:

"ajax": 
    { 
     "url": "/api/APIDirectory/[email protected]" 
     "type": "POST", 
     "dataType": "JSON" 
    }, 

控制器:

[HttpPost] 
public IActionResult GetDirectoryInfo(string reqPath) 
{ 
    string requestPath = reqPath; 
    // some code here.. 
} 

任何人都可以請告知可在asp.net核心Web API來實現這一目標的途徑?

+1

確保'@ ViewBag.Title'不爲空。 – Xyroid

回答

1
"ajax": 
{ 
    "url": "/api/APIDirectory/GetDirectoryInfo" 
    "type": "POST", 
    "dataType": "JSON", 
    "data": {"reqPath":"@ViewBag.Title"} 
} 

編輯的結合上寫着: 如果我們使用的查詢字符串,我們可以使用的類型作爲GET。

但是我們使用的是POST方法,所以我們需要將參數傳遞給數據。

+1

雖然此代碼片段可能會解決問題,但[包括解釋](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)確實有助於提高帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 –

+1

謝謝。我已經添加了解釋。 –

0

投遞查詢字符串數據使用內容類型application/x-WWW窗體-urlencoded

$.ajax({ 
    type: "POST", 
    url: "/api/APIDirectory/GetDirectoryInfo?reqPath=" + @ViewBag.Title, 
    contentType: "application/x-www-form-urlencoded" 
}); 

同時,確保了ajax語法是正確的(我使用jQuery在我的例子)和@ViewBag不包含在字符串中。

然後在控制器中添加[FromUri]參數,以確保從URI

[HttpPost] 
public IActionResult GetDirectoryInfo([FromUri]string reqPath) 
{ 
    string requestPath = reqPath; 
    // some code here.. 
} 
相關問題