0

以下は、Advertisement テーブル内の特定のアイテムを名前で検索するために私が作成したコードです。

public ActionResult SearchResult(string name)
{
    var advertisement = db.Advertisements.ToArray(); // retrieve data from database
    foreach (var ad in advertisement)
    {
        if (ad.Title.Equals(name))
        {
            return View(ad); 
        }
    }

    return View(advertisement);
}

既にデータベースにあるアイテムを検索しても、すべての場合で if 条件が true ではありません。ビュー ページの結果としてアイテムのリスト全体を取得するたびに。ここでの問題は何ですか?

広告の私のモデルは次のようになります。

using System;
using System.Drawing; // Image type is in this namespace
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;

namespace Bartering.Models
{
    public class Advertisement
    {
        [Key]
        public int ID { get; set; }

        [Required]
        [StringLength(100)]
        public string Title { get; set; }

        public Guid OwnerID { get; set; }

        [Required]
        public string Category { get; set; }

        public byte[] Image { get; set; }

        [Required]
        [StringLength(200)]
        public string Description { get; set; }
     }
}
4

1 に答える 1

0

私はあなたがこのようなことをすべきだと思います

public ActionResult SearchResult(string name)
{
   var ad=db.Advertisements.Where(s=>s.Title.ToUpper()==name.ToUpper())
                  .FirstOrDefault();
   if(ad!=null)
      return View(ad);
   //Nothing found for search for the name, Let's return the "NotFound" view
   return View("NotFound");
}

このコードは、チェック (Title==name) に一致する最初のアイテム (存在する場合) を取得し、それを返します。条件に一致するものが見つからない場合は、「Notfound」というビューを返します

于 2013-10-06T13:53:05.010 に答える