블로그 게시물의 DynamicJsonModelBinder
을 사용하여 JavaScript의 JSON 데이터를 ASP.NET MVC 컨트롤러 DynamicJsonObject
으로 전달합니다. http://pastebin.com/p3cfHSab : http://blog.duc.as/2011/06/07/making-mvc-3-a-little-more-dynamic/DynamicJsonObject를 반복합니다.
내가 VB.NET 내 프로젝트를 변환 :
은 블로그 게시물에서보세요.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 메서드를 사용하여 멤버의 값에 액세스하려면 어떻게해야합니까?
,하지만 당신은 사전에 따라 값에 액세스 할 수 없습니다? ex'obj [ "ID"]' – Lester
네, 프라이빗 _dictionary 멤버가 있지만 사전에 값을 접근하는 것이 왜 작동하지 않는지 궁금합니다. – terabaud