私は、MS Sql サーバー 2008 Express rc2 を使用して asp.net mvc3 Web アプリケーションに取り組んでいます。私のアプリでは、DB に 2 つの異なるブランドがあり、そのうちの 1 つは Null または「不明」の値がほとんどありません (たとえば、Null の代わりに「不明」が DB に追加されます)。私の質問は、View で If/Else ステートメントを使用する代わりに、null 以外の値のみを View Engine に渡す方法です。
コントローラーで:
var model = _data.GetViewModel(query);
if (model != null)
{
return View(model);
}
else
return View("Error");
ビューモデルで;
public int Id { get; set; }
public string Query { get; set; }
public string Brand { get; set; }
public string Family { get; set; }
public string Type { get; set; }
モデル:
public ViewModel GetViewModel(string query)
{
var data = _comp.Get(p => p.Query == query);
if (data == null) return null;
return new ViewModel
{
Id = data.id,
Brand = data.brand,
Family = data.family,
Type = data.type
};
}
ビューで(現在Ifステートメントを使用しています):
@if (Model.Brand != null)
{
<span class="brand">@Model.Brand</span>
}
@if (Model.Family != null)
{
<span class="family">@Model.Family</span>
}
@if (Model.Type != null)
{
<span class="type">@Model.Type</span>
}
注: 各ブランドのデータベースにはあまりにも多くの値があり、それらの多くが Null であるため、If ステートメントを避けたいので、それらの Null 値に対して Html を生成したくありません。上記のコードのような If/Else ステートメントを使用しています。If を使用して View でチェックする値が多すぎるため、サーバーとプロセッサのメモリが消費され、サーバーの応答時間も遅くなります。
これを行うための代替方法が必要です。部分ビューまたはその他のものを使用する必要がありますか? これを解決するために私を助けてください、あなたの助けは非常に高く評価されています. ありがとうございます。