【发布时间】:2014-08-28 03:54:32
【问题描述】:
所以,我有一个模型,其中包含一个团队的团队成员列表。每个团队成员都有一份与该成员相关的期刊列表。这些期刊都有一个与之关联的状态,我用枚举来使用。
public enum DailyEntryStatus
{
[Description("NA")]
NA,
[Description("Void")]
Void,
[Description("Submitted")]
Submitted,
[Description("Rejected")]
Rejected,
[Description("Approved")]
Approved
};
我的问题是,对于模型中团队成员的日记列表中的每个日记,我的视图都有一个下拉列表。我可以使用枚举值填充下拉列表,但我希望在下拉列表中选择期刊当前状态。
@Html.DropDownList("StatusFilter", EnumSelectListExtensions.DailyEntryStatusList(oEntry.Status), new { @class = "input-medium" })
我正在使用扩展方法 DailyEntryStatusList(enum status) 来填充以枚举状态作为参数的列表。 (oEntry.Status 是循环中当前的日志状态)
public static class EnumSelectListExtensions
{
public static IEnumerable<SelectListItem> DailyEntryStatusList(DailyEntryStatus eStatus)
{
var oList = from Enum e in Enum.GetValues(typeof (DailyEntryStatus))
select new {Value = e.ToString(), Name = e.ToString()};
return new SelectList(oList, "Value", "Name", eStatus.ToString());
}
}
我已经尝试了几种方法来让它工作但没有运气,也许我只是以错误的方式去做。非常感谢您的帮助。
【问题讨论】:
-
您确定 eStatus 已正确传入并且与列表中的一项匹配吗?你有没有通过确认?
-
是的,正在显示每一个的正确状态。
-
@Html.DropDownList("StatusFilter", ..正在呈现<select name="StatusFilter" ..并选择属性StatusFilter的当前值,但我怀疑这不是属性的完全限定名称,因为它是一个集合。它应该有一个类似于Journals[0].StatusFilter的名称。请发布您用于构建视图的模型和循环 -
这最终成为我这边的一个问题。该下拉菜单是 jQuery 的目标,并且选定的 val 被默认为第一个。我猜只是其中的一天。
标签: html asp.net-mvc