我想要两个 CheckBoxList 一个索引 View ,那些 CheckBoxList 从两个不同的表动态绑定(bind)。一个是运动 另一个是国家/地区。
基本上我尝试通过 EditorTemplates,但它不适用于两个 楷模。我面临在单个 View 中使用两个模型的问题。
这是我在 Controller 中的索引方法
SampleDBContext db = new SampleDBContext();
public ActionResult Index()
{
ViewData["Sports"] = db.Sports.ToList();
ViewData["Country"] = db.Countries.ToList();
return View(ViewData["Sports"]);// I am confused and i don't know what to write there we can call both table data.
}
体育模板 View
@model MVCDEMO.Models.Sports
@Html.HiddenFor(x => x.s_Id)
@Html.CheckBoxFor(x => (bool)x.is_selected)
@Html.DisplayFor( x => x.s_Name)
国家模板 View
@model MVCDEMO.Models.Country
@Html.HiddenFor(x => x.c_Id)
@Html.CheckBoxFor(x => (bool)x.is_selected)
@Html.DisplayFor( x => x.c_Name)
索引 View
<div class="form-horizontal">
<div class="form-group">
<label class="col-sm-2 control-label">
Select Sports
</label>
<div class="col-md-3">
@Html.EditorForModel()//what to write it recognize Sports template
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">
Select Country
</label>
<div class="col-md-3">
@Html.EditorForModel()//what to write it recognize Country template
</div>
</div>
</div>
如果我为单个模型工作,它会完美地工作。
最佳答案
我个人会使用具有 Sports
和 Countries
作为属性的强类型 View 模型,而不是使用 ViewData:
public class IndexPageViewModel
{
public IEnumerable<Sports> Sports { get; set; }
public IEnumerable<Country> Countries { get; set; }
}
创建两个局部 View ,每个类一个(Sport
和 Country
),将允许您使用 @Html.EditorForModel()
helper 。重用部分 View 也将是一个额外的好处,但这显然取决于具体的应用程序。
请注意,“EditorForModel”助手将为模型的每个属性呈现一个编辑器。如果您需要不同类型的编辑器,例如下拉菜单,我不确定是否应该使用 EditorForModel
。
关于mysql - ASP.NET MVC Entity FrameWork 中一个 View 中的多个模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26211499/