Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.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# MVC 5 EnumDropDownList用于实现_C#_Asp.net Mvc_Enums - Fatal编程技术网

C# MVC 5 EnumDropDownList用于实现

C# MVC 5 EnumDropDownList用于实现,c#,asp.net-mvc,enums,C#,Asp.net Mvc,Enums,我需要为这个项目实现一个下拉框。我使用枚举类来填充它,下面是我的 public class Media { public int Id { get; set; } public string title { get; set; } public string description { get; set; } public string tag { get; set; } public TagsEnum TagsEnum { get; set; } }

我需要为这个项目实现一个下拉框。我使用枚举类来填充它,下面是我的

public class Media
{
    public int Id { get; set; }
    public string title { get; set; }
    public string description { get; set; }
    public string tag { get; set; }  
    public TagsEnum TagsEnum { get; set; }
}
和枚举类

public enum TagsEnum
    {
        Ecomomy,
        Latest,
        LocalNews,
        Interesting,
        WorldNews
    }
创建方法

public ActionResult Create([Bind(Include = "Id,title,description,body,VideoLink, Source,tags")] Media media, HttpPostedFileBase file, int id = 0)
        {

            if (ModelState.IsValid)
            {
                if (file != null)
                {
                    file.SaveAs(HttpContext.Server.MapPath("~/Images/")
                                                          + file.FileName);
                    media.ImagePath = file.FileName;
                }
                db.Medias.Add(media);
                db.SaveChanges();
                return RedirectToAction("Index");
            }
问题是,在我的创建视图中,我的下拉列表工作正常,代码如下:

    <div class="form-group">
        @Html.LabelFor(model => model.tags, "News Category", new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EnumDropDownListFor(model => model.TagsEnum)
            @Html.ValidationMessageFor(model => model.tags)
        </div>
    </div>

我在这里误解了什么,请帮忙。谢谢。

问题在于如何在控制器操作结果中绑定媒体属性。Media类有一个属性public TagsEnum TagsEnum{get;set;},该属性已绑定到下拉列表,但在操作结果中未绑定该属性:

[Bind(Include = "Id,title,description,body,VideoLink, Source,tags")] Media media
这会导致TagsEnum值不会存储在数据库中,因此当您在媒体列表中检索它时,它只返回枚举的第一个值。您正在使用一系列其他字段,如VideoLink或标记,它们根本不是媒体的属性。这些将被忽略,但如果希望将TagsEnum分配给媒体变量,则必须按如下方式添加:

[Bind(Include = "Id,title,description,body,VideoLink, Source,tags, TagsEnum")] Media media

谢谢你们,我正在使用这些字段,我刚刚删除了它们以缩短课堂,但你们有一个很好的观点,我会尽快将其添加到媒体课堂。再次感谢!
[Bind(Include = "Id,title,description,body,VideoLink, Source,tags, TagsEnum")] Media media