我希望有一个与Tab jQuery一起使用的视图,允许我填充多个表(使用局部视图)。基本上我希望能够用一个视图填充数据库的表。
我的模特示例:
public class Tag
{
public int Id { get; set; }
public string Tag { get; set; }
public string Note { get; set; }
}
public class City
{
public int Id { get; set; }
public string City { get; set; }
public string Note { get; set; }
}
我的控制员:
public class tabController : Controller
{
public ActionResult tab()
{
var tvm = new MyDbContext();
return View(tvm);
}
}
和我的观点:
@model ??????????
@section Scripts {
<script>
$(function () {
$("#tabs").tabs();
});
</script>
}
<div id="tabs">
<ul>
<li><a href="#tabs-1">tag</a></li>
<li><a href="#tabs-2">city</a></li>
<li><a href="#tabs-3">country</a></li>
<li><a href="#tabs-4">more more</a></li>
</ul>
<div id="tabs-1">
<div class="panel-body">
@Html.Partial("_tag", ????? )
</div>
</div>
<div id="tabs-2">
<div class="panel-body">
@Html.Partial("_city", Model?)
</div>
</div>
<div id="tabs-3">
<div class="panel-body">
@Html.Partial("_country", @Model.Country)
</div>
</div>
<div id="tabs-4">
<div class="panel-body">
@Html.Partial("_note"@*, @Model.NoteShares*@)
</div>
</div>
</div>
我看到了错误:
传递到字典中的模型项的类型为'myprojMVC5.Models.tabs',但此字典需要类型为'System.Collections.Generic.IEnumerable`1 [myprojMVC5.Models.tabsl]
答案 0 :(得分:1)
选项1:查看模型
创建包含要显示的集合的属性的视图模型
public class TabsVM
{
public IEnumerable<Tag> Tags { get; set; }
public IEnumerable<City> Cities { get; set; }
}
并在控制器中初始化视图模型的实例并填充te集合
public class tabController : Controller
{
public ActionResult tab()
{
var tvm = new MyDbContext();
TabsVM model = new TabsVM()
{
Tabs = tvm .Tabs(),
Cities = tvm.Citys()
}
return View(model);
}
并在视图中
@model yourAssembly.TabsVM
....
@Html.Partial("_tag", Model.Tags)
....
@Html.Partial("_tag", Model.Cities)
选项2:仅调用返回部分视图的子操作方法
[ChildActionOnly]
public ActionResult FetchTags()
{
var tvm = new MyDbContext();
var model = tvm.Tags();
return PartialView("_tags", model);
}
并在视图中(不需要传递给视图的模型)
....
@Html.Action("FetchTags") // assumes the methods will be in the same controller
....
@Html.Action("FetchCities") // or you can use @{ Html.RenderAction("FetchCities"); }