我正在尝试使用
Html.DropDownListFor<> HtmlHelper和我在帖子上绑定有点麻烦. HTML呈现正确但我在提交时从未获得“选定”值.
<%= Html.DropDownListFor( m => m.TimeZones,Model.TimeZones,new { @class = "SecureDropDown",name = "SelectedTimeZone" } ) %>
[Bind(Exclude = "TimeZones")] public class SettingsViewModel : ProfileBaseModel { public IEnumerable TimeZones { get; set; } public string TimeZone { get; set; } public SettingsViewModel() { TimeZones = GetTimeZones(); TimeZone = string.Empty; } private static IEnumerable GetTimeZones() { var timeZones = TimeZoneInfo.GetSystemTimeZones().ToList(); return timeZones.Select(t => new SelectListItem { Text = t.DisplayName,Value = t.Id } ); } }
我尝试了一些不同的东西,我确信我做的事情很愚蠢……只是不确定它是什么:)
解决方法
这是我为您编写的一个示例,用于说明DropDownListFor帮助方法的用法:
模型:
public class SettingsViewModel { public string TimeZone { get; set; } public IEnumerable<SelectListItem> TimeZones { get { return TimeZoneInfo .GetSystemTimeZones() .Select(t => new SelectListItem { Text = t.DisplayName,Value = t.Id }); } } }
控制器:
public class HomeController : Controller { public ActionResult Index() { return View(new SettingsViewModel()); } [HttpPost] public ActionResult Index(SettingsViewModel model) { return View(model); } }
视图:
<% using (Html.BeginForm()) { %> <%= Html.DropDownListFor( x => x.TimeZone,new { @class = "SecureDropDown" } ) %> <input type="submit" value="Select timezone" /> <% } %> <div><%= Html.Encode(Model.TimeZone) %></div>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。