在Product类中有一个显示删除状态的属性DelFlag,在编辑视图页,对于所有的删除状态以RadioButtonList显示出来,如果RadioButtonList选项的value值与当前model的DelFlag属性值相同,则勾选该选项,如图:

思路:

→在Views/Shared/EditorTemplates/RadioButtonList.chtml部分视图以RadioButtonList呈现所有删除状态。
→在编辑视图中,需要把有关删除状态,封装成List<SelectListItem>放在路由中传递给部分视图RadioButtonList.chtml
→在Product的DelFlag属性上,通过[UIHint("RadioButtonList")]指定该属性的显示视图

public class Product
    {
        [UIHint("RadioButtonList")]
        public int? DelFlag { get; set; }
    }

HomeController:

public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View( new Product(){DelFlag = 2});
        }

}

Home/Index.cshtml视图:

其中,关于删除状态,封装成List<SelectListItem>,并通过路由传递给接收的部分视图。

@model MvcApplication2.Models.Product
 
@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
    
    List<SelectListItem> list = new List<SelectListItem>();
    list.Add(new SelectListItem(){Text = "正常使用",Value = "1"});
    list.Add(new SelectListItem() { Text = "逻辑删除", Value = "2" });
    list.Add(new SelectListItem() { Text = "物理删除", Value = "3" });
}
 
<style type="text/css">
    ul{
        list-style-type: none;
    }
</style>
 
<h2>Index</h2>
 
@Html.EditorFor(model => model.DelFlag, new {lst = list})

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { 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部分视图:

@model int?
 
@{
    var list = (List<SelectListItem>)ViewData["lst"]; 
}
 
<ul>
    @foreach (var item in list)
    {
        <li>
            @{
                var radioId = ViewData.TemplateInfo.GetFullHtmlFieldId(item.Value); //DelFlag_1 DelFlag_2 DelFlag_3 
                var checkedCls =
                    (item.Value == Model.ToString() ? "Checked" : string.Empty);
                    
                //name=DelFlag 属性名称被保存在ViewData.TemplateInfo.HtmlFieldPrefix中
                <input type="radio" id="@radioId" name="@ViewData.TemplateInfo.HtmlFieldPrefix" value="@item.Value" checked="@checkedCls"/>
                <label for="@radioId">@item.Text</label>
            }
        </li>
    }
</ul>

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { 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; }

最新文章

  1. qrcode 生成验证码带文字
  2. 每日学习笔记:js中可以直接用id名调用的问题?
  3. hdu 2255 奔小康赚大钱--KM算法模板
  4. CentOS查看软件源提供的软件版本命令
  5. Android 使用意图传递数据
  6. python中函数的总结之三
  7. 详解C/C++函数指针声明 ( *( void(*)())0)();
  8. JS学习之表格的排序
  9. 高逼格UI-ASD(Android Support Design)
  10. php 简单的存在 (方法之间的神奇作用:容错)
  11. java byte【】数组与文件读写
  12. python 3.6 lxml标准库lxml的安装及etree的使用注意
  13. golang设置title并获取窗口句柄
  14. C++ 重定义、重载、覆盖
  15. Jenkins入门之导航操作
  16. 文件解压缩 tar zip
  17. Java入门与基础算法班 - 课程大纲
  18. 如何用INNO安装添加快捷启动方式到Win7的快速启动栏(超级任务栏)
  19. 如何阻止点击scrollviewer里面的单位内容时,自动滚动
  20. Educational Codeforces Round 63 D. Beautiful Array

热门文章

  1. C#中ASCII码与字符串的互换
  2. VMware虚拟机Mac OS X无法调整扩展硬盘大小的解决方案
  3. Java与Redis
  4. MVC 源码调试
  5. 【AtCoder】AGC011 C - Squared Graph
  6. 成功实施的APS项目故事分享---我们数据治理的心路历程
  7. ODBC在注册表中的位置
  8. ASL测试 课题测试博客
  9. 理解 Python 中的元类
  10. Spring 定时操作业务需求