asp.net – 单选按钮而不是下拉列表在mvc 3应用程序?
发布时间:2020-12-16 00:28:19 所属栏目:asp.Net 来源:网络整理
导读:我有一个视图,模型有一个项目的集合。然后我有一个EditorFor模板,该模板负责为用户创建一个下拉列表,为集合中的每个项目选择一个有限数量的值: @model Consultants.Models.ProgramSkilltr td@Model.Program.Name /td td@Model.Program.Category /td td @
我有一个视图,模型有一个项目的集合。然后我有一个EditorFor模板,该模板负责为用户创建一个下拉列表,为集合中的每个项目选择一个有限数量的值:
@model Consultants.Models.ProgramSkill <tr> <td>@Model.Program.Name </td> <td>@Model.Program.Category </td> <td> @Html.DropDownListFor( model => model.Level,new SelectList(new[] { 0,1,2,3,4,5 },Model.Level)) </td> </tr> 但是我宁愿让radiobutton做同样的事情,那可能在MVC 3?如果是这样,怎么办? 解决方法
这将是一个自定义html助手的完美候选人:
using System.Web.Mvc; using System.Web.Mvc.Html; using System.Text; using System.Collections.Generic; using System.Linq.Expressions; using System; public static class HtmlExtensions { public static MvcHtmlString RadioButtonListFor<TModel,TProperty>(this HtmlHelper<TModel> htmlHelper,Expression<Func<TModel,TProperty>> ex,IEnumerable<SelectListItem> values) { string name = ExpressionHelper.GetExpressionText(ex); var sb = new StringBuilder(); int counter = 1; foreach (var item in values) { sb.Append(htmlHelper.RadioButtonFor(ex,item.Value,new { id = name + counter.ToString()})); var label = new TagBuilder("label"); label.SetInnerText(item.Text); label.Attributes.Add("for",name + counter.ToString()); sb.Append(label.ToString()); counter++; } return MvcHtmlString.Create(sb.ToString()); } } 模型: public class MyViewModel { public IEnumerable<SelectListItem> Items { get; set; } public string Level { get; set; } } 控制器: public class HomeController : Controller { public ActionResult Index() { var model = new MyViewModel { Level = "2",Items = Enumerable.Range(1,5).Select(x => new SelectListItem { Value = x.ToString(),Text = "item " + x }) }; return View(model); } } 和视图: @model AppName.Models.MyViewModel @using (Html.BeginForm()) { @Html.RadioButtonListFor(x => x.Level,Model.Items) <input type="submit" value="OK" /> } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- .NET的标记SO如何在飞行中呈现?
- asp.net-mvc – ASP.Net MVC 3 – JSON模型绑定到数组
- asp.net – FindControl()返回null
- asp.net-mvc – 带有ioc的asp.net mvc – >使用BaseControl
- asp.net – 为会话设置文化
- asp.net-mvc-3 – 是否可能获得一个ASP.NET MVC 3项目工作在
- asp.net-mvc – 如何在ASP .NET MVC中对参数进行URL编码
- asp.net-mvc-3 – 如何在Mvccontrib网格模型中使用自定义列
- 有什么好的参考或工具可用于将ASP转换为ASP.NET?
- asp.net-mvc – 使用Asp.Net MVC的Ajax?
推荐文章
站长推荐
- asp.net-mvc-3 – MVC 3在提交模型后,View不会刷
- asp.net-mvc – 您可以使用IOC容器将依赖项注入自
- asp.net-mvc-4 – 如何永久教Visual Studio检测我
- asp.net – 使用数据库或MSMQ进行排队?
- asp.net-mvc – @ Html.Action in Asp.Net Core
- asp.net-mvc – 使用razor引擎在mvc4中重写url
- asp.net – 连接到源文件XYZ的撤消管理器时出错
- asp.net-mvc – 如何阻止ASP.Net MVC Html.Actio
- asp.net – 从多个表中计算数据
- asp.net – 由于端口小于1024,无法打开包含网站的
热点阅读