您好,我想显示一个页面,我允许用户创建一个新记录,并显示下面相同表格的其他相关记录......
我需要在Hobbydetail类中添加数据: 公共课HobbyDetail {
public virtual HobbyMasters Hobbymaster { get; set; }
public virtual Course course { get; set; }
public virtual StudyMedium StudyMedium { get; set; }
public virtual decimal Fees { get; set; }
}
我希望我的视图“创建”让用户创建新记录,并在其下方显示现有记录... 我不想使用viewmodel ... 可以总结帮助我 Thanx提前
答案 0 :(得分:0)
实现此目的的一种方法是:在控制器中,创建一个呈现列表的子操作,然后使用Html.RenderAction(也是see this)在“创建”视图中呈现该操作。我在下面列出了一些代码(我没有测试过这个,但它应该给你一些基本的想法)。请注意,这不是实现此目的的唯一方法 - 您可以使用部分视图see this。还请理解html.RenderAction和html.Action,see this之间的区别。
//In HobbyDetail Controller
[HTTPGet]
public ActionResult Create()
{
var model = new HobbyDetail ();
return View(model);
}
[HTTPPost]
public ActionResult Create(HobbyDetail model)
{
if(ModelState.isValid)
{
//logic to persist model
}
else
{
//logic when validation fails...
}
}
[ChildActionOnly]
public ActionResult ListAll()
{
List<Hobbydetail> model = //query to DB, or Data store to get Hobbydetails
return View(model);
}
//View for ListAll
@model List<HobbyDetail>
{
Layout = null; //No layout here...
}
<ul>
@foreach(var h in Model)
{
<li>@h.HobbyMasters.Name</li> //for example...
}
</ul>
//View for Create
@model HobbyDetail
...
@{html.renderAction("ListAll");}