4

MVC / Razor / Entity Framework で少し苦労しています。

親オブジェクトを参照するオブジェクトを作成する必要があります。モデルに ParentID というフィールドがありますが、親の ID を入力する方法がわかりません。

ビューに隠しフィールドが必要だと考えているので、ParentID を ViewBag に配置し、その ViewBag プロパティを隠しフィールドにポイントしますが、それを機能させることができないようです。

このようなものは、私の仮定でした:

@Html.Hidden("BladeID", ViewBag.ParentBlade)

私は自分自身を十分に説明したかどうか確信が持てないので、質問してください。拡大します.

また、これを正しい方法で行っているかどうかもわかりません。これはすべて、Webフォームから来る、私にとって非常に新しいものです。

4

1 に答える 1

9

がすでにモデルにある場合はParentID、そこから非表示フィールドに直接入力してみませんか?

@Html.Hidden("BladeID", Model.ParentID)

本当に から入力したい場合は、 にViewBagキャストし直す必要があります(それが のタイプintであると仮定しますParentID) 。ViewBagdynamic

@Html.Hidden("BladeID", (int)ViewBag.ParentBlade)



コメントに基づいて更新

ビューが 2 つ (またはそれ以上) の個別のモデル クラスに依存している場合、そのビューのカスタム ビュー モデルを作成することをいつでも選択できます。

public class ParentChildViewModel
{
    public Blade Parent { get; set; }
    public Blade Child { get; set; }
}

次に、そのクラスをビューのモデルとして使用します。

@model ParentChildViewModel
// more view code here
@Html.Hidden("BladeID", Model.Child.ParentID)

とはいえ、私の意見ではViewBag、特に必要なプロパティが 1 つだけの場合は、この場合に を使用しても問題はありません。

于 2012-05-02T09:33:38.690 に答える