【发布时间】:2017-04-16 10:38:57
【问题描述】:
我需要为项目实现一个下拉框。我使用enum 类来填充它,这就是我所拥有的
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");
}
这就是问题所在,在我的Create 视图中,我的下拉列表工作正常,代码如下:
<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>
但是当我打开一个查看页面MediaMain 时,我是否有一个媒体对象列表,即使我从 dorpdown 列表中选择了不同的类别,我也只显示了第一个。这是代码
foreach (var b in Model.media)
{
...
<h5>Category: <a href=@Url.Action("Media", new { id = b.Id })>@Html.Raw(b.TagsEnum)</a></h5>
...
}
我在这里误解了什么,请帮忙。谢谢。
【问题讨论】:
标签: c# asp.net-mvc enums