我正在使用 MS Sql server 2008 express rc2 开发 asp.net mvc3 Web 应用程序。在我的应用程序中,我在 DB 中有两个不同的品牌,其中一个几乎没有 Null 或“未知”值(例如,将“未知”添加到 DB 而不是 Null)。我的问题是如何仅将非空值传递给 View Engine,而不是在 View 中使用 If/Else 语句?
在控制器中:
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>
}
注意:我想避免If语句,因为每个品牌的Database中的值太多,而且其中很多是Null,所以我不想为那些Null值生成Html。我正在使用像上面的代码一样的 If/Else 语句,并且为了使用 If 检查 View 中的太多值,它会消耗服务器和处理器上的内存,并且还会减慢服务器响应时间。
我想有另一种方法来做到这一点。我应该使用局部视图还是其他任何东西?请帮我解决这个问题,非常感谢您的帮助。谢谢并恭祝安康。