0

または少なくとも、彼らは私が期待していたことをしません。私のアクションメソッドは次のようになります。

    Function Test() As ActionResult
        Dim model As Object = New ExpandoObject()
        model.FieldA = 123
        model.FieldB = "This is a string"
        model.FieldC = DateTime.Now

        Return View(model)
    End Function

ビューは次のようになります。

@ModelType Object
@Html.DisplayForModel

モデルがこれらのフィールドを持つ実際のオブジェクトである場合と同じものを生成することを期待していましたが、代わりに次のようになります。

[FieldA, 123][FieldB, This is a string][FieldC, 3/29/2012 12:10:24 PM] 

EditorForModelはまったく同じことを行います。これは正しい動作ですか、そして私が探している動作を実装するための最良の方法は何ですか?

4

1 に答える 1

0

はい、これは正しい動作です。デフォルトのメタデータプロバイダー(DataAnnotationsModelMetadataProvider)は、リフレクションを使用してモデル情報を取得します。これが、この結果を取得する理由です。

ダイナミクスで正しく機能するカスタムメタデータプロバイダーを作成することをお勧めします。このクラスから継承してみてください-http://msdn.microsoft.com/en-us/library/system.web.mvc.dataannotationsmodelmetadataprovider.aspx

于 2012-03-29T17:59:10.570 に答える