Asp.net mvc 3 在同一视图MVC3中创建和列出

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>

所以我想做的是在同一个视图中创建和列出一个视图,所以我读到我可以使用一个视图模型,所以我创建了我的视图模型“EventoViewModel”

我的观点:在前面的每一部分我都会遇到一个错误,比如说nullreferenceException,我做错了什么

@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);
        }