以下是由我編寫的用於在廣告表中按名稱搜索特定項目的代碼。比較從C#中的ToArray()方法返回的字符串值。
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);
}
即使我搜索的是已經在數據庫中,在所有情況下,如果條件不被true.Each時間,我得到的物品作爲結果在視圖首頁的整個列表中的項目。這裏有什麼問題?
我的廣告模型看起來像這樣。
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; }
}
}
那麼你有沒有通過調試來驗證你確實得到了預期的對象?你有沒有檢查過你是否正確接收了'name'? –
用'StringComparison.InvariantCultureIgnoreCase'嘗試用忽略 – Satpal
@JonSkeet我試過調試,而且令人驚訝的是name的值爲空 – DesirePRG