ユーザーが州情報を入力できるページがあり、他のユーザーのリストが州内に戻ってきます。foreach
ループを使用しています。
一部の州にはユーザーが 0 人いるため、エラーが発生します: Object reference not set to an instance of an object。どうすればそのエラーを乗り越えることができますか? 私が使用している特定のモデルは、プロファイルと呼ばれます。
モデル:
public class homepage
{
public List<profile> profile { get; set; }
public PagedList.IPagedList<Article> article { get; set; }
}
コントローラー:
public ActionResult Index()
{
HttpCookie mypreference = Request.Cookies["cook"];
if (mypreference == null)
{
ViewData["mypreference"] = "Enter your zipcode above to get more detailed information";
var tyi = (from s in db.profiles.OrderByDescending(s => s.profileID).Take(5) select s).ToList();
}
else
{
ViewData["mypreference"] = mypreference["name"];
string se = (string)ViewData["mypreference"];
var tyi = (from s in db.profiles.OrderByDescending(s => s.profileID).Take(5) where se==s.state select s).ToList();
}
return View();
}
景色:
@if (Model.profile != null)
{
foreach (var item in Model.profile)
{
@item.city
}
}
Object reference not set to an instance of an objectエラーを取得すると、行@if (Model.profile != null)
が強調表示されるので、これを実行しようとしました:
public List<profile>? profile { get; set; }
しかし、うまくいきませんでした。foreach で空のモデルを受け入れる方法、または実行時にコードをスキップする方法についてのアイデアはありますか?