MVC通过UIHint和自定义视图显示RadioButtonList
2014-05-27 16:14
393 查看
在Product类中有一个显示删除状态的属性DelFlag,在编辑视图页,对于所有的删除状态以RadioButtonList显示出来,如果RadioButtonList选项的value值与当前model的DelFlag属性值相同,则勾选该选项,如图:
思路:
→在Views/Shared/EditorTemplates/RadioButtonList.chtml部分视图以RadioButtonList呈现所有删除状态。
→在编辑视图中,需要把有关删除状态,封装成List<SelectListItem>放在路由中传递给部分视图RadioButtonList.chtml
→在Product的DelFlag属性上,通过[UIHint("RadioButtonList")]指定该属性的显示视图
publicclassProduct
{
[UIHint("RadioButtonList")]
publicint?DelFlag{get;set;}
}
HomeController:
publicclassHomeController:Controller
{
publicActionResultIndex()
{
returnView(newProduct(){DelFlag=2});
}
}
Home/Index.cshtml视图:
其中,关于删除状态,封装成List<SelectListItem>,并通过路由传递给接收的部分视图。
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
Views/Shared/EditorTemplates/RadioButtonList.chtml部分视图:
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
思路:
→在Views/Shared/EditorTemplates/RadioButtonList.chtml部分视图以RadioButtonList呈现所有删除状态。
→在编辑视图中,需要把有关删除状态,封装成List<SelectListItem>放在路由中传递给部分视图RadioButtonList.chtml
→在Product的DelFlag属性上,通过[UIHint("RadioButtonList")]指定该属性的显示视图
publicclassProduct
{
[UIHint("RadioButtonList")]
publicint?DelFlag{get;set;}
}
HomeController:
publicclassHomeController:Controller
{
publicActionResultIndex()
{
returnView(newProduct(){DelFlag=2});
}
}
Home/Index.cshtml视图:
其中,关于删除状态,封装成List<SelectListItem>,并通过路由传递给接收的部分视图。
@modelMvcApplication2.Models.Product
@{
ViewBag.Title="Index";
Layout="~/Views/Shared/_Layout.cshtml";
List<SelectListItem>list=newList<SelectListItem>();
list.Add(newSelectListItem(){Text="正常使用",Value="1"});
list.Add(newSelectListItem(){Text="逻辑删除",Value="2"});
list.Add(newSelectListItem(){Text="物理删除",Value="3"});
}
<styletype="text/css">
ul{
list-style-type:none;
}
</style>
<h2>Index</h2>
@Html.EditorFor(model=>model.DelFlag,new{lst=list})
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
Views/Shared/EditorTemplates/RadioButtonList.chtml部分视图:
@modelint?
@{
varlist=(List<SelectListItem>)ViewData["lst"];
}
<ul>
@foreach(variteminlist)
{
<li>
@{
varradioId=ViewData.TemplateInfo.GetFullHtmlFieldId(item.Value);//DelFlag_1DelFlag_2DelFlag_3
varcheckedCls=
(item.Value==Model.ToString()?"Checked":string.Empty);
//name=DelFlag属性名称被保存在ViewData.TemplateInfo.HtmlFieldPrefix中
<inputtype="radio"id="@radioId"name="@ViewData.TemplateInfo.HtmlFieldPrefix"value="@item.Value"checked="@checkedCls"/>
<labelfor="@radioId">@item.Text</label>
}
</li>
}
</ul>
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
相关文章推荐
- MVC 用扩展方法执行自定义视图,替代 UIHint
- MVC通过扩展HtmlHelper实现RadioButtonList
- MVC自定义编辑视图,DateTime类型属性显示jQuery ui的datapicker
- 爬爬爬之路:UI(三)自定义视图 MVC浅谈 视图控制器 屏幕旋转事件获取
- 在MVC视图中使用判断显示自定义内容
- 利用Razor在ASP.NET MVC中的实现,自定义视图引擎框架(2)
- Moss/Sharepoint 为特定用户组设置特定视图以及可见视图,自定义列表新建页,修改页和显示页(无代码法)
- Jquery 取RadioButtonList选定项的值及显示的数据
- Asp.Net MVC 视图(创建自定义HTML Helpers) - Part.2
- 通过自定义数据绑定类实现MVC中图片上传
- 在ASP.NET MVC 如何在Response.StatusCode = 404的同时,显示友好的自定义错误页面
- Moss/Sharepoint 为特定用户组设置特定视图以及可见视图,自定义列表新建页,修改页和显示页(无代码法)
- TAO教程之三:介绍-改进服务端,通过POA策略之显示激活和用户自定义对象ID
- DataBind包括三大方法,Repeater,DataList和DataGrid,这些控件都位于 System.Web.UI.WebControls 命名空间中,从 WebControl 基类中直接或间接派生出来的。这些方法都是通过HTML来显示数据的内
- 通过修改视图来修改首页显示标题字体过小的问题
- Asp.Net MVC 视图(创建自定义HTML Helpers)
- RadioButtonList控制Div的显示切换
- mscrm 将自定义的视图在sitemap中显示
- 【已测试通过】::自定义工具按钮进行矩选查询,高亮显示所选择的地图要素
- [翻译]通过调用多个动作创建ASP.NET MVC视图