0

ページに渡されたユーザーに基づいてフィルター処理されたテーブルを表示するページがあります。また、ユーザーの情報をページの上部に表示したいのですが、これは別のテーブル (アカウント モデル) からのものです。他のコントローラー/ビューで作業しながら、このテーブルからフィールドにアクセスする方法はありますか?

これが私のコードです:

@{
    ViewBag.Title = "User Profile";
}

@model IEnumerable<FTv2.Models.Trade>

@{
    ViewBag.Title = "Active Trades";
    ViewBag.ImgUrl = ViewBag.Name + ".png";
}


<h2>@ViewBag.User's Profile:</h2>
<p>
    // This is where I would like to put the User info.
</p>
<h2>Active Trades:</h2>
<p>

</p>
<table>
    <tr>
        <th>
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Name)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Price)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.User)
        </th>
        <th></th>
    </tr>

@foreach (var item in Model)
{
    if (item.User == ViewBag.User)
    {
    <tr>
        <td>
            @{ViewBag.ImgUrl = @item.Name + ".png";}
        <a href="/Images/@ViewBag.ImgUrl"><img src="/Images/@ViewBag.ImgUrl" HEIGHT="66" WIDTH="50" ></a>
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Name)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Price) TE
        </td>
        <td>
            <a href="/ActiveTrades/@item.User">@Html.DisplayFor(modelItem => item.User)</a>
        </td>
        @{if (ViewBag.User == User.Identity.Name){
        <td>
            @Html.ActionLink("Edit", "Edit", new { id = item.ID }) |
            @Html.ActionLink("Details", "Details", new { id = item.ID }) |
            @Html.ActionLink("Delete", "Delete", new { id = item.ID })
        </td>
        }}
    </tr>
    }
}

</table>
4

2 に答える 2

0

私が考えることができる2つのオプションがあります:

  1. ユーザーの詳細を返すアクション メソッドをレンダリングする

    @{

    Html.RenderAction("UserDetails", new { UserID = ViewBag.UserID});
    

    }

  2. ユーザーの詳細と取引の IEnumerable を持つ新しいモデルを作成し、これをビューに使用します。

于 2013-06-23T19:09:50.500 に答える