私はブログポストのDynamicJsonModelBinder
を使用してJavaScriptからJSONデータをASP.NET MVCコントローラにDynamicJsonObject
として渡しています。DynamicJsonObjectを繰り返します
は、ブログの記事を見てください:http://blog.duc.as/2011/06/07/making-mvc-3-a-little-more-dynamic/
私はVB.NETへの私のプロジェクトのためにそれを変換:http://pastebin.com/p3cfHSab。
Imports System.Dynamic
Imports System.Web.Helpers
Namespace MyNameSpace
Public Class TestController
Inherits System.Web.Mvc.Controller
Function Index(<DynamicJson()> obj As DynamicJsonObject) As ActionResult
Dim output As String = ""
Dim members As IEnumerable(Of String) = obj.GetDynamicMemberNames()
For Each item In members
output += item + vbCrLf
Next
Return Content(output)
End Function
End Class
End Namespace
クライアント側:
var jsonObject = { "ID": "123", "NAME": "Mr. Rosema", "TEST": "123"};
$.ajax({
url: "/Test",
type: "POST",
contentType: "application/json",
data:
JSON.stringify(jsonObject)
,
success: function (data) {
}
});
これは動作します。私のコントローラでは、私はjsonObjectに次のようにアクセスできます。obj.ID '123
しかし、すべてのプロパティを繰り返し処理する方法はまだわかりません。すべてのメンバー名をIEnumerable String Collection(obj.GetDynamicMemberNames()
)として取得できますが、TryGetMemberメソッドを使用してメンバーの値にアクセスするにはどうすればよいですか?
私はVBの開発者ではないんだけど、あなたは辞書としての値にアクセスすることはできませんか? ex 'obj [" ID "]' – Lester
はい、プライベート_dictionaryメンバが存在するにもかかわらず、辞書としての値へのアクセスが機能しないのだろうかと思っていました。 – terabaud