新しい子エンティティを作成する目的で、私が作成するパーシャルビューは空白なので、私は尋ねています。部分的な視点から親モデルにアクセスするために、汚れていても、素早く、必要があります。私は親のIDが必要です。パーシャルビューからのアクセスモデル
部分ビューは自動的に親のモデルにアクセスできますか?
新しい子エンティティを作成する目的で、私が作成するパーシャルビューは空白なので、私は尋ねています。部分的な視点から親モデルにアクセスするために、汚れていても、素早く、必要があります。私は親のIDが必要です。パーシャルビューからのアクセスモデル
部分ビューは自動的に親のモデルにアクセスできますか?
レンダリング時にパラメータとしてこの部分に値を渡さない限り、部分モデルから親モデルにアクセスすることはできません。たとえば、あなたのメインビューで:
@model MyViewModel
...
@Html.Partial("_myPartial", new ViewDataDictionary(new { id = Model.Id }));
、その後、あなたの部分の内側にあなたがId
にアクセスできます。
<div>@ViewBag.Id</div>
もちろんこれは、部分的なビューにデータを渡すのはかなりお粗末な方法です。正しい方法は、厳密に型指定されたビューモデルを使用することです。
この例が間違っているのだろうかと思います。私はViewDataDictionaryを渡すメインビューを見るが、ViewBag経由で部分ビューを取得している。 ViewBagとViewDataは異なる、はい? –
いいえ、ViewBagとViewDataは全く同じストレージを使用しています。 'ViewBag.FooBar'を書くときは' ViewData ["FooBar"] 'と書いているようです。そして、あなたはそれらのいずれかを使用すべきではありません。代わりに強く型付けされたビュー・モデルを使用する必要があります。 –
これを行う正しい方法は、プレゼンテーション要件をコントローラロジックに移し、リストアイテムをリストの一部に表示するために、親アイテムのIDを使用することですリンクの作成に使用されますか? MVCは錯覚ですか? – john
私はこれが古い話題だと知っていますが、とにかく同じ問題に自分の解決策を追加するだけだと思いました。私はそれが少しきれいだと思う。
基本的に、パーシャルビューにモデルを追加します。
封入ビュー:
@model whatever
...
@Html.Partial("partialview", anotherwhatever)
部分図:私はちょうど(ちょうど短くするためにそれを使用して、パーティションコード)部分ビューに文字列を渡すために必要な私の場合は
@model anotherwhatever
<div>@Model.something</div>
...
したがって、これは他のソリューションよりもはるかにエレガントでした。
まず最初に他のソリューションを試してみましたが、実際には動作させることができませんでした。
パーフェクト:)ありがとう – Kaken
これは私のために働いてしまった。
@model MyViewModel
...
@Html.Partial("_myPartial", new ViewDataDictionary { { "id", Model.Id } })
そして、部分図の内側には、これを使用...
<div>@ViewBag.id</div>
あなたの質問は不明です。 –
いくつかのコードを投稿して、あなたが望んでいないものを理解するのに役立つでしょうか? –