Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 发布时DropDownList模型属性为空_C#_Asp.net_Asp.net Mvc_Entity Framework_Asp.net Mvc 5 - Fatal编程技术网

C# 发布时DropDownList模型属性为空

C# 发布时DropDownList模型属性为空,c#,asp.net,asp.net-mvc,entity-framework,asp.net-mvc-5,C#,Asp.net,Asp.net Mvc,Entity Framework,Asp.net Mvc 5,我试图从dropdownlist中获取模型属性的属性,但是回发时该值为null,尽管在下拉列表中选择了一个值 这就是我所拥有的: [HttpGet] public ActionResult AddEditEvent(int? id) { var eventViewModel = new EventViewModel(); var projectEventModel = new projectEvent(); if (id != null) { us

我试图从dropdownlist中获取模型属性的属性,但是回发时该值为null,尽管在下拉列表中选择了一个值

这就是我所拥有的:

[HttpGet]
public ActionResult AddEditEvent(int? id)
{
    var eventViewModel = new EventViewModel();
    var projectEventModel = new projectEvent();
    if (id != null)
    {
        using (var db = new DBEntities())
        {
            projectEventModel = (from p in db.projectEvents
                              where p.eventID == id
                              select p).FirstOrDefault();
        }
    }

    eventViewModel.ProjectEvent = projectEventModel;

    using (var db = new DBEntities())
    {
        eventViewModel.eventTypes = (from p in db.eventTypes
                      select p).ToList();
    }

    return View(eventViewModel);
}

[HttpPost]
public ActionResult AddEditEvent(EventViewModel model)
{
    if (ModelState.IsValid)
    {
        using (var db = new DBEntities())
        {
        //save values
        }
    }
    return RedirectToAction("Events");
}
这是视图模型:

public class EventViewModel
    {
        public projectEvent ProjectEvent { get; set; }
        public IEnumerable<eventType> eventTypes { get; set; }
    }
使用数据库表中的EF创建的projectEvent类:

public partial class projectEvent
    {
        public projectEvent()
        {
            this.eventsToProjects = new HashSet<eventsToProject>();
        }

        public int eventID { get; set; }

        [Required]
        public Nullable<System.DateTime> eventDate { get; set; }

        [Required]
        public string eventName { get; set; }
        public Nullable<int> typeID { get; set; }

        [Required]
        public virtual eventType eventType { get; set; }
        public virtual ICollection<eventsToProject> eventsToProjects { get; set; }
    }
我正在使用的视图:

@model TTB.ViewModels.EventViewModel

@{
    Layout = "~/Views/Shared/_Layout_Main.cshtml";
}

<h2>Add/Edit Event</h2>

@using (Html.BeginForm("AddEditEvent", "Admin"))
{
    <div class="container">
        <div class="col-md-8">
            <div class="form-group">
                <label for="name">Name</label>
                @Html.TextBoxFor(m => m.ProjectEvent.eventName, new { @class = "form-control" })
                @Html.ValidationMessageFor(m => m.ProjectEvent.eventName)
            </div>
            <div class="form-group">
                <label for="name">Date</label>
                @Html.TextBoxFor(m => m.ProjectEvent.eventDate, new { @class = "form-control" })
                @Html.ValidationMessageFor(m => m.ProjectEvent.eventDate)
            </div>
            <div class="form-group">
                <label for="name">Event Type</label>
                @Html.DropDownListFor(v => v.ProjectEvent.eventType, new SelectList(Model.eventTypes, "eventTypeID", "eventTypeName"), new { @class = "form-control dropdown" })
            </div>
            @Html.HiddenFor(m => m.ProjectEvent.eventID)
        </div>
        <div class="col-md-8">
            <input type="submit" class="btn btn-success btn-lg btnSaveEdit" value="Save" />
        </div>
    </div>
}
回发时,模型的外观如下所示:


你知道我做错了什么吗?

把你的下拉列表绑定到typeID而不是eventType。@BenRobinson你是对的,请回答这个问题