我使用博客文章中的DynamicJsonModelBinder
將我的JSON數據從JavaScript傳遞到我的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字符串集合(obj.GetDynamicMemberNames()
),但是如何使用TryGetMember方法訪問成員的值?
我不是一個VB的開發者,但你能不能作爲字典訪問值? ex'obj [「ID」]' – Lester 2012-01-27 17:00:38
是的,我想知道爲什麼作爲字典訪問值不起作用,雖然有一個私人的_dictionary成員基礎。 – terabaud 2012-01-27 23:32:10