zoukankan      html  css  js  c++  java
  • MVC3.0入门学习笔记Razor@Html.DropDownList

    最近刚学习使用mvc 遇到select问题 一个页面N多项select 编辑的时候如何让他选中我们指定的值成了一个问题 当然解决方法很多 js前台绑定 或者输出html的时候循环处理 现在我们使用@Html.DropDownList 来处理这个

    网上搜索了下相关的 都是基于lambda表达式写的 看了头晕 lambda表达式我也不会 所以自己参考msdn 把这个功能实现了下

    实际中可能有这样一种情况 某个select 的option是数据库字典里取出来的 展示到页面上的效果 如

    <select style=" 185px;" class="inputstyle1" id="ImportAmount" name="ImportAmount">
    	<option value="0">请选择进口额</option>
    	<option value="1">人民币10万元以下</option>
    	<option value="2">人民币10万元-30万元</option>
    	<option value="3">人民币30万元-50万元</option>
    	<option value="4">人民币50万元-100万元</option>
    	<option value="5">人民币100万元-200万元</option>
    	<option value="6">人民币200万元-300万元</option>
    	<option value="7">人民币300万元-500万元</option>
    	<option value="8" selected="selected">人民币500万元-700万元</option>
    	<option value="9">人民币700万元-1000万元</option>
    	<option value="10">人民币1000万元-2000万元</option>
    	<option value="11">人民币2000万元-3000万元</option>
    	<option value="12">人民币3000万元-5000万元</option>
    	<option value="13">人民币5000万元-1亿元</option>
    	<option value="14">人民币1亿元以上</option>
    
    </select>
    

     我们可以这样写

     IList<xxxx.Service.Model.DictionaryModel> certificationTypeModel = ViewData["importAmountModel"] as IList<xxxxx.Service.Model.DictionaryModel>;

    Controllers

     IDictionaryService  IDict = new DictionaryService();
    
    IList<DictionaryModel> importAmountModel= IDict.GetByDicType("moneyType");
    

     view

    @{
        IList<xxxx.Service.Model.DictionaryModel> importAmount= ViewData["importAmountModel"] as IList<xxxx.Service.Model.DictionaryModel>;
     
    }
    <select id="ImportAmount" name="ImportAmount"> @foreach (var item in importAmount) { <option value="@item.Dickey">@item.DicName</option> } </select>

     然后页面就呈现了如上的html展示页现在有问题了 如果是编辑页面我们要对这个select进行赋值选中 方法有很多 可以用js去赋值 或者在 @foreach去做个判断 如

      <select id="ddlEnterpriseType" name="ddlEnterpriseType">
                               @foreach (ESunny.InfoPub.Service.Model.DictionaryModel item in dicEnterpriseType)
                               {
                                   if (@Model.EnterpriseType == @item.Dickey)
                                   {
                                        <option value="@item.Dickey" selected="selected">@item.DicName</option>
                                   }
                                   else
                                   {
                                       <option value="@item.Dickey">@item.DicName</option>
                                   }
    
                               }
                            </select>
    

     现在我们使用一个新的方法 在绑定的时候就赋值  @Html.DropDownList

    Controllers

     IList<DictionaryModel> ImportAmountModel = IDict.GetByDicType("ImportAmountType");
                //ViewData["ImportAmountModel "] = new SelectList(ImportAmountModel , "绑定的key", "绑定的name", "这个填写要选中的值比如 model来自数据库 ");
    ViewData["ImportAmountModel "] = new SelectList(ImportAmountModel , "Dickey", "DicName", model.ImportAmountType);

     view

    //控制样式 或者id name等 参考重载方法 我们这里给这个select定义了样式class = "inputstyle1" 应为class是关键字 所以加上@符号转义下
    @Html.DropDownList("actualCapitalUnit", ViewData["actualCapitalUnitModel"] as SelectList, new { @class = "inputstyle1" })
    //简单点的
    @Html.DropDownList("actualCapitalUnit")

    最终展现的html也很干净 目的也达到了

  • 相关阅读:
    转:选择学习“下一个”程序语言
    再谈 Web 字体的现状与未来
    堪称2008年最漂亮的50组图标(上)
    堪称2008年最漂亮的50组图标(下)
    回帖整理: 互联网的未来, 我们的未来, 算一个预告吧, 有空我会把这些观点一一展开
    [回帖整理]创业建议
    也论PageController/FrontController与MVC
    [回帖整理] 创业难
    是否非要用interface关键字来实现接口?
    又论社区风气, 与程序员是干嘛地的.
  • 原文地址:https://www.cnblogs.com/jcgh/p/2434281.html
Copyright © 2011-2022 走看看