我在_Layout中显示城市列表。我使用ViewBag
传递数据到此,
@{
var cities = (List<CustomCityViewModel>)ViewBag.Cities;
}
<ul class="list-items">
@foreach (var city in cities)
{
<li>
<span>
@if (city.Id == null)
{
<a href="@Url.Action("Search","Home")">
@city.Name
</a>
}
else
{
<a class="city-search-item" data-name="@city.Name" data-id="@city.Id">
@city.Name
<i class="fa fa-angle-left"></i>
</a>
}
</span>
</li>
}
</ul>
我应该在每个动作中设置viewbag的值。
如何发送数据,以免在每个操作中分配数据?
答案 0 :(得分:0)
//create a base Model class
public class BaseModel
{
public BaseModel(){
//here init base data to get in _layout
//sete data to cities
}
public IList<City> cites{set;get;}
}
// all other Model extend from BaseModel
// in your _Layout use BaseModel
@model BaseModel
@{
var cities =Model;
}
<ul class="list-items">
@foreach (var city in cities)
{
<li>
<span>
@if (city.Id == null)
{
<a href="@Url.Action("Search","Home")">
@city.Name
</a>
}
else
{
<a class="city-search-item" data-name="@city.Name" data-id="@city.Id">
@city.Name
<i class="fa fa-angle-left"></i>
</a>
}
</span>
</li>
}
</ul>