2

私は現在、小さな e コマース プロジェクトに取り組んでいます。すべての説明 (データベースから) を表示するのではなく、製品の簡単な説明を表示したいと考えています。
これが私のコントローラーです。

var products = context.Products.OrderBy(p => p.ProductName);
@ViewBag.ProductList = products.ToList<Product>();

そして、これが私のビューコードです。

<ul class="display" id="content">
@foreach( var item in @ViewBag.ProductList as IEnumerable<Product>)
{
    @Html.Partial("_ProductPartial", item)
}
</ul>

部分的な「_ProductPartial」ビュー内で、その説明フィールドが呼び出されます。

<p>
    @Html.DisplayFor(model => model.ProductDescription)
</p>

ここで、製品の簡単な説明を表示したいと思います (デフォルトで機能する説明全体を表示するのではなく)。
では、LINQを使用してこれを行うにはどうすればよいですか?
(可能であれば)他の方法はありますか?

4

1 に答える 1

7

ViewModel を使用してこれを行っています:

    public string ProductDescription { get; set; }

    public string ShortDescription
    {
        get
        {
            var text = ProductDescription;
            if (text.Length > 21)
            {
                text = text.Remove(19);
                text += "..";
            }
            return text ;
        }
    }

ViewModel を作成したくない場合は、Product クラスを拡張して、この読み取り専用プロパティを持つことができます。

于 2012-06-16T09:07:47.010 に答える