-2

model_12 つのモデルとmodel_2(one model_1, many )を使用したいのですmodel_2が、1 つのビューでは 1 つしか使用できません。

これは私の見解です:

@model IEnumerable<ProjectFashion.Models.model_1>
@model IEnumerable<ProjectFashion.Models.model_2>
@{
    ViewBag.Title = "VMenu";
}
<ul>
    @foreach(var n in Model) {
        <li class="dir">
            <h6>@n.name</h6>
                <ul>
                      @*I WANT TO GET model_2 which belongs to model_1*@
                </ul>
        </li>        
    }
</ul>

と私の _Layout.cshtml:

<!--vmenu-->
@Html.Action("VMenu", "Layout")
<!--vmenu-->

と私の LayoutController.cs:

ShopContent db = new ShopContent();
public ActionResult VMenu() {
    return PartialView("_VMenu", db.model_1s);
}

私もandmodel_3を含めて使っていますが、 ではいくつかの問題が発生します。(私の不完全な英語で申し訳ありません...)model_1model_2@Html.Action("VMenu", "Layout")

4

2 に答える 2

0

関連する model_2 を提供する model_1 のナビゲーション プロパティはありますか? その場合は、ナビゲーション model_2 が入力された model_1 を渡すだけで済みます。サンプル行で のように参照します@n.model_2s.property

于 2013-06-17T17:54:02.180 に答える
0

あなたはこれを望まない:

@model IEnumerable<ProjectFashion.Models.model_1>
@model IEnumerable<ProjectFashion.Models.model_2>

あなたはこれを求めている:

@model ProjectFashion.Models.SomeCustomModel

カスタム モデルは次のように単純です。

public class SomeCustomModel
{
    public IEnumerable<model_1> FirstModel { get; set; }
    public IEnumerable<model_2> SecondModel { get; set; }
}

(私はより良い名前を思いつくことができませんでした.あなたのモデル名は、それらが何であるかについての手がかりを実際に残しませんでした.)

次に、コントローラー アクションで のインスタンスを作成し、SomeCustomModelそのフィールドにデータを入力して、それをビューに返します。一般的に言えば、作成しているのは、単に他のオブジェクトで構成される「複合オブジェクト」です。

もちろん、これは、モデルが相互に他の既存の関係を持っていないことを前提としています。(繰り返しますが、名前からは何の手がかりも得られません。)もしそうなら、おそらく「子」オブジェクトを既に持っている「親」オブジェクトがあるのでしょうか? model_1タイプのプロパティまたはインスタンスmodel_2のコレクションが既に含まれている可能性がありますか?model_2

于 2013-06-17T17:54:23.503 に答える