2011-11-02 102 views
0

我嘗試了下面的解決方案,但未取得成功。在控制器方法MvcAction中,prs參數始終爲空。以下是我用來調用控制器方法的代碼。使用Ajax調用操作方法

function getPerson() { 
    var jFirstName = '@Model.Person.FirstName'; 
    var jLastName = '@Model.Person.LastName'; 
    return { FirstName: jFirstName, LastName: jLastName }; 
} 

var person = getPerson(); 
var jsonPerson = JSON.stringify(person); 

$.post('@Url.Action("MvcAction", "MvcXontroller")', { prs : jsonPerson }, 
function(data) { 
    .... 
}); 

的操作方法是這樣的:

public void MvcAction(Person prs) 
{ 

} 
+0

如果您使用Fiddler或類似的工具,您看到在'$ .post'動作的主體中傳遞了什麼?請張貼請求的主體。 – counsellorben

回答

1

data空還是下車404錯誤,因爲路由引擎無法找到MvcAction方法?

我的猜測是,由於您的返回類型爲void,結果將始終爲空。如果要將數據返回給客戶端,請將您的返回類型更改爲JsonResult或類似的東西。

UPDATE

嘗試更新$.post()電話這樣的:

$.post('@Url.Action("MvcAction", "MvcXontroller")', JSON.stringify({ prs : person}), 
    function(data) { 
     .... 
    }); 

$.post打電話給那個人是在姓和名值的有效傑森對象之前,還要驗證。

+0

在真實代碼中不是無效的,但是如果我使用Console.WrtileLine(prs),它並不重要。我想prs不是null。 –

+0

你是說在控制器方法'MvcAction'中,'prs'總是空?我只是想完全理解你的問題。 – arb

+0

總是爲空。不清楚?我在一個視圖中,我從我的模型,並與這2值(名字,姓氏)得到2值,需要創建一個類型(人)發送一個參數到我的行動 –