我对MVC中的
HTML帮助扩展很新,更不用说在Razor中了,我正在寻找一种简单,整洁的方式来显示一年中12个月的下拉列表,其值为数字和文本日期的“MMM”表示.
所以最后的HTML应该是这样的:
<select> <option value="1">Jan</option> <option value="2">Feb</option> <option value="3">Mar</option> <!-- etc --> </select>
是否可以在视图中完全执行此操作?我需要一个用户@ Html.DropDownListFor()的答案,所以我可以利用自动模型绑定.我接近下面的代码行,但它没有明确的值.
@Html.DropDownListFor(model => Model.dobMonth,new SelectList(Enumerable.Range(1,12).Select(r => new DateTime(2000,r,1).ToString("MMM"))),"- -")
出于非技术原因,我不能使用jQuery datepicker.
解决方法
你几乎就在那里,问题是如果你在创建SelectList时没有提供dataValue和dataText参数,它只会在项目上调用ToString并将它们用作选项的文本.
你需要的是从你的选择中返回文本,值对:
@Html.DropDownListFor(model => Model.dobMonth,new SelectList( Enumerable.Range(1,12) .Select(r => new { Text = new DateTime(2000,1).ToString("MMM"),Value = r.ToString() }),"Value","Text",Model.dobMonth))
@Html.DropDownListFor(model => Model.dobMonth,new SelectList( new [] { new { Text = "- -",Value = (string)null } }.Concat( Enumerable.Range(1,Value = r.ToString() })),Model.dobMonth))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。