比较c#中从ToArray()方法返回的字符串值

时间:2013-10-06 13:42:09

标签: c# database asp.net-mvc-3

以下是我编写的代码,用于在广告表中按名称搜索特定项目。

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条件都不是真的。每次我在视图页面中得到整个项目列表作为结果。这是什么问题?

我的广告模型看起来像这样。

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; }
     }
}

1 个答案:

答案 0 :(得分: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”的视图