0

objectと呼ばれるタイプのアイテムを持つモデルがありますmyobject

public class myModel
{
    public long id {get;set;}
    public object myobject {get;set;}
}

私のビューでは、テンプレートを使用EditorForして編集するために使用します:myobject

@model myModel
// form (code omitted)
@Html.EditorFor(model => model.myobject)

<button type="submit">Save</button>

これはテンプレートです:

@model myObject

@Html.EditorFor(model => model.myname)

myModel.myobjectコントローラーで値を取得するにはどうすればよいですか? キャストしようとしましたが、次のエラーが発生します。

タイプ 'System.Object' のオブジェクトをタイプ 'MyProject.Models.myobject' にキャストできません。

4

1 に答える 1

1

モデル内のプロパティのタイプは次のobjectとおりです。

public object myobject { get; set; }

あなたの EditorTemplate はタイプですmyObject-タイプではありませんobject:

@model myObject <-- This little thing is responsible telling MVC what editor template to use with which type.

@Html.EditorFor(model => model.myname)

これが、探している実装が得られない理由です。

代わりに、型に基づいて必要なテンプレートを MVC に推測させる代わりに、名前付きの EditorTemplateを使用できます。

于 2012-07-13T15:59:26.380 に答える