asp.net – 单选按钮而不是下拉列表在mvc 3应用程序?
发布时间:2020-05-23 18:08:15 所属栏目:asp.Net 来源:互联网
导读:我有一个视图,模型有一个项目的集合。然后我有一个EditorFor模板,该模板负责为用户创建一个下拉列表,为集合中的每个项目选择一个有限数量的值: @model Consultants.Models.ProgramSkilltr td@Model.Program.Name /td td@Model.Program.Category /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" />
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何在Asp.Net 4.0 / IIS7中支持压缩的HTTP请求?
- 在ASP.NET中如何识别/处理404异常?
- asp.net – 使用ModalPopupExtender而不必设置TargetContro
- asp.net – Application_EndRequest没有找到Session
- asp.net-mvc – 让System.Web.Optimization在类库中的剃刀视
- 加快ASP.NET中的构建时间
- asp.net-mvc – 用于控件名称的参数化前缀的局部视图
- asp.net-mvc-4 – 如何使用SimpleMembership管理配置文件?
- asp.net-mvc – 用于字符串的ASP.NET MVC显示模板用于整数
- asp.net – 用户控件的属性在回发后失去价值
推荐文章
站长推荐
- asp.net-mvc-4 – 在MVC 4中创建下拉列表的最佳方
- asp.net-mvc – RedirectToAction不工作
- asp.net – 在IIS中,existingResponse =“PassTh
- 在ASP.NET中使用Web API而不是Web方法有什么优势
- 使用MVC在ASP.NET中实现API的最佳方法是什么?
- asp.net-mvc – 如何在Asp.Net MVC循环中呈现纯H
- 剃刀 – 我应该在ASP.NET MVC 3中放置声明式HTML
- asp.net-mvc – 我们可以传递模型作为参数在Redi
- ASP.net没有为某些用户代理生成javascript
- ASP.Net MVC MvcBuildViews大大增加了编译时间
热点阅读
