6
Locations
アクションパラメータモデルに移入されMVC 3のアクションに複雑なJSONオブジェクトを渡ししようとしているときに、私はいくつかの奇妙な結果を取得しています
へのオブジェクトが、名前場所はありません。
私がko.toJS(testViewModel)
を実行すると、名前と場所はありますが、場所は空白ですか?
私が使用していますknockout.js:
var testViewModel = {
Name: ko.observable("Joe Bob"),
Locations: ko.observableArray([
{ ID: 1, Name: "Salem, OR" },
{ ID: 2, Name: "Big Bear Lake, CA" },
{ ID: 3, Name: "Big Bear City, CA" }
]),
Position: ko.observable("Manager")
}
jQueryのAJAX経由で送信:
$.ajax({
url: "/ClaimsAuthority/Home/TestIt",
type: "POST",
data: ko.toJSON(testViewModel),
success: function (data, status, xhr) {
//ko.applyBindings(data);
}
});
MVCアクション:
<HttpPost()>
Public Function TestIt(model As TestModel) As ActionResult
Return Json(model)
End Function
モデル:
Public Class TestModel
Public Property ID As Integer
Public Property Name As String
Public Property Locations As ICollection(Of LocationModel)
Public Property Position As String
End Class
Public Class LocationModel
Public Property ID As Integer
Public Property Name As String
Public ReadOnly Property DisplayText As String
Get
Return String.Format("({0}) {1}", ID, Name)
End Get
End Property
End Class
おかげでダーリン!それはうまくいった!もうすぐ別のビールにおまかせします! – Sam
複雑なモデルをこのように解析し、コントローラのアクションで型付きオブジェクトとして受け取ることはできますか?私は同じことをしようとしているが、オブジェクトのコレクションは、インスタンスでは、空のプロパティ値が付属しています。 –
@ GustavoRubio、はい、任意に複雑なオブジェクトやコレクションを使用することは可能です。 JSONをシリアル化することはできないため、循環オブジェクト参照のみがサポートされていません。 –