0

いくつかの動的入力フィールドを含む部分ビューが必要です。これを行うには、モデルに「オブジェクト」タイプのオブジェクトが含まれており、コントローラーで、関連するオブジェクト タイプ「myobject」を使用して新しいモデルを作成します。

PartialViewResult ではすべて正常に動作しますが、フォームの送信後、オブジェクトにオブジェクト タイプ "myobject" が含まれません。

正しいオブジェクトを送信するフォームで送信する方法は?

コントローラ:

public PartialViewResult mypage()
{
myModel model = new myModel();
myObject obj = new myObject();
model.myobject = obj;

return PartialView(“mypage”,model);
}

public PartialViewResult Save (myModel model)
{
    // Here I need model.myobject!!!
}

モデル:

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

public myObject
{
    public string myname {get;set;}
}

意見:

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

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

テンプレート

@model myObject

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

2 に答える 2

1

返されたオブジェクトをキャストする必要があります。それはそのようなものです:

MyObject myObject = (MyObject) objectReturned;
于 2012-07-13T12:40:02.200 に答える
1

オブジェクト自体にはプロパティがありません。必要なプロパティを含む型にキャストする必要があります。

ビューを別の myobject タイプに再利用したいためにそれができない場合は、インターフェイスといくつかの一般的な名前のプロパティを使用する必要があります。

別の方法として、プロパティ バッグ、つまりディクショナリを使用して、ビュー内のキー名で値を参照する方法があります。

次に、モデルにプロパティを定義できます。

 public Dictionary<string, string> MyItems {get;set;}

ページでそれらを参照します。

 model.MyItems["keyName"]
于 2012-07-13T12:36:15.740 に答える