Asp.net mvc 3 在同一视图MVC3中创建和列出
所以我想做的是在同一个视图中创建和列出一个视图,所以我读到我可以使用一个视图模型,所以我创建了我的视图模型“EventoViewModel” 我的观点:在前面的每一部分我都会遇到一个错误,比如说nullreferenceException,我做错了什么Asp.net mvc 3 在同一视图MVC3中创建和列出,asp.net-mvc-3,Asp.net Mvc 3,所以我想做的是在同一个视图中创建和列出一个视图,所以我读到我可以使用一个视图模型,所以我创建了我的视图模型“EventoViewModel” 我的观点:在前面的每一部分我都会遇到一个错误,比如说nullreferenceException,我做错了什么 @model createList.Models.EventoViewModel <h2>Create</h2> @using (Html.BeginForm()) { <fieldset>
@model createList.Models.EventoViewModel
<h2>Create</h2>
@using (Html.BeginForm()) {
<fieldset>
<div class="editor-label">
@Html.LabelFor(model => model.Eventos.Nombre)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Eventos.Nombre)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
<table>
<tr>
<th>
Nombre
</th>
</tr>
@foreach (var item in Model.LEventos) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Nombre)
</td>
</tr>
}
</table>
@model createList.Models.EventoViewModel
创造
@使用(Html.BeginForm()){
@LabelFor(model=>model.Eventos.Nombre)
@EditorFor(model=>model.Eventos.Nombre)
}
名义
@foreach(Model.LEventos中的var项){
@DisplayFor(modeleItem=>item.Nombre)
}
我改变了我的方法,现在我使用局部视图。并创建一个“列表”局部视图
@model createList.Models.Eventos
<h2>Create</h2>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Eventos</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Nombre)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Nombre)
@Html.ValidationMessageFor(model => model.Nombre)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
**@{Html.RenderAction("list", "Evento");}** // call de action "list"
<div>
@Html.ActionLink("Back to List", "Index")
</div>
局部视图:列表
@model IEnumerable<createList.Models.Eventos>
<table>
<tr>
<th>
Nombre
</th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Nombre)
</td>
</tr>
}
</table>
那么问题是什么呢?在我看来,在foreach部分我都有一个错误,比如说nullreferenceException,我做错了什么?很明显的可能性是Model.LEventos没有初始化,因此NullReferenceExceptionyep,我想知道我必须在哪里初始化itI,但我甚至看不到在您的操作中您在哪里实例化了类型为
EventoViewModel
的模型,也看不到您在哪里将其传递给相关视图。
@model IEnumerable<createList.Models.Eventos>
<table>
<tr>
<th>
Nombre
</th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Nombre)
</td>
</tr>
}
</table>
@model createList.Models.Eventos
<h2>Create</h2>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Eventos</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Nombre)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Nombre)
@Html.ValidationMessageFor(model => model.Nombre)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
**@{Html.RenderAction("list", "Evento");}** // call de action "list"
<div>
@Html.ActionLink("Back to List", "Index")
</div>
public ViewResult List()
{
return View(db.Eventos.ToList()); //past a list of eventos
}
public ActionResult Create()
{
return View();
}
[HttpPost]
public ActionResult Create(Eventos eventos)
{
if (ModelState.IsValid)
{
db.Eventos.AddObject(eventos);
db.SaveChanges();
return RedirectToAction("Create");
}
return View(eventos);
}