我正在嘗試使用jQuery爲MVC控制器操作執行$ .post()。這裏的jQuery的電話:將對象傳遞給控制器操作
var _authTicket = { username: 'testingu', password: 'testingp' };
function DoPost() {
var inputObj = { authTicket: _authTicket, dateRange: 'ThisWeek' };
$.post('/MyController/MyAction', inputObj, PostResult);
}
function PostResult(data) {
alert(JSON.stringify(data));
}
這裏的控制器動作:
<HttpPost()> _
Function MyAction(ByVal authTicket As AuthTicket, ByVal dateRange As String) As ActionResult
Dim u = ValidateUser(authTicket)
If u Is Nothing Then Throw New Exception("User not valid")
' etc..
End Function
的問題是,MyAction的 「authTicket」 參數是所有空。第二個「dateRange」參數填充得很好。我非常肯定,這個問題源於jQuery將數據轉換爲鍵/值對以POST到動作。 MVC不能理解格式,至少當它是具有它自己的屬性的對象時。
該jQuery是轉換爲名稱/值對的格式是這樣的:
authTicket[username] = "testingu"
authTicket[password] = "testingp"
而這又被做成X WWW的形式-urlencoded'd數據:
authTicket%5Busername%5D=testingu
&authTicket%5Bpassword%5D=testingp
我我猜可以在我的動作中始終擁有「用戶名」和「密碼」屬性,但這對我來說似乎是錯誤的。任何幫助,將不勝感激。
什麼是AuthTicket類是什麼樣子? – 2010-05-08 02:18:28
這就像客戶端版本 - 包含用戶名和密碼的屬性。 – 2010-05-10 13:01:09