MVC RC2中关于HtmlHelper给DropDownList设置初始选中值的问题

Asp.Net MVC RC2中Helper提供的DropDownList好象并不太好用,特别想给下拉框设置初始选中值的时候(可能我还没找到正确的方法)

小试了一下,有二个简单的解决办法:
1.回到最原始的asp的办法,直接在view的循环中判断,具体代码就不写了,有过Asp/Php经验的一点就明白

2.自己再写一个DropDownList的重载版本,如下:

Code
/// <summary>
        /// 生成下拉列表
        /// </summary>
        /// <param name="helper"></param>
        /// <param name="SelectListName">下拉列表的Name值</param>
        /// <param name="SelectItems">数据源</param>
        /// <param name="SelectedValue">选中值</param>
        /// <param name="Attributes">附加属性值,比如onchange=""之类</param>
        /// <returns></returns>
        public static string DropDownList(this HtmlHelper helper, string SelectListName, IEnumerable<SelectListItem> SelectItems, string SelectedValue, string Attributes)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("<select");

            if (SelectListName.Trim() != "")
            {
                sb.Append(" name=\"" + SelectListName + "\"");
            }
            else
            {
                return "";
            }

            if (Attributes.Trim() != "")
            {
                sb.Append(" " + Attributes.Trim());
            }

            sb.Append(">");

            foreach (SelectListItem item in SelectItems)
            {
                if (item.Value == SelectedValue)
                {
                    sb.Append("<option value=\"" + item.Value + "\" selected=\"selected\">" + item.Text + "</option>");
                }
                else
                {
                    sb.Append("<option value=\"" + item.Value + "\">" + item.Text + "</option>");
                }
            }

            sb.Append("</select>");

            return sb.ToString();

        }

调用代码如下:

Action部分:

List<SelectListItem> _items = new List<SelectListItem>();
        
ViewData["Citys"] = _items;

View部分:
<%=Html.DropDownList("SelName",  (IEnumerable<SelectListItem>)ViewData["Citys"],item.CityId.ToString(),"onchange=\"alert('Test')\"") %>

时间: 2024-09-09 18:18:59

MVC RC2中关于HtmlHelper给DropDownList设置初始选中值的问题的相关文章

angularjs ui-select怎么用,如何设置默认选中值

问题描述 angularjs ui-select怎么用,如何设置默认选中值 表示不清楚ui-select的用法,请问如何设置默认选中值? 解决方案 jQuery设置select默认选中的值---------------------- 解决方案二: {{$select.selected.name}}解决方案三: <div class="col-sm-6"> <ui-select ng-model="provinces.selected" theme=

求高人wpf中Richtextbox通过代码来设置给选中文字加下划线

问题描述 //通过代码来设置选中文字的样式代码:RichTextBox1.Selection.ApplyPropertyValue(TextElement.ForegroundProperty,Brushes.Red);//改变前景色RichTextBox1.Selection.ApplyPropertyValue(TextElement.FontSizeProperty,12);//改变文字大小上面是改变颜色和字体,怎么加下划线,还有一个问题是,当这些样式设置了以后,如果继续输入时文字会变成上

MVC中当VIEW出现dropdownlist时,在Model视图模块中如何去设置更合理

对于在页面上显示的文本框信息,我们在视图模块中定义成string就可以了,但如果是列表框呢,我们应该如何去定义更合理些呢? 起初,我使用的方法是ViewData,然后在页面中再去强类型一下,如 <%= Html.DropDownList("Type1",ViewData["Type"])%> 这种方法破坏了对象的完整性,使它脱离了与对象的关系,我在做程序开发时,提供下面这种写法: <%= Html.DropDownList("Type1&

asp.net mvc 如何通过ajax给htmlhelper的dropdownlist重新赋值

问题描述 asp.netmvc如何通过ajax给htmlhelper的dropdownlist重新赋值 解决方案 解决方案二:在对应的控制器中写上,下面代码是使用LINQTOSQL来从Northwind数据库中提取种类,publicActionResultIndex(){vardb=newNorthwindDataContext();IEnumerable<SelectListItem>items=db.Categories.Select(c=>newSelectListItem{Val

求助!关于.Net MVC中伪静态和防盗链设置的一些问题

问题描述 最近公司项目有一个需求是这样的,先说一下,项目用的是纯MongoDB,需求就是用户上传的附件要求在数据库里备份一份,本地静态文件夹中存一份,如果静态文件被人误删,可以通过数据库恢复到本地静态地址.一看到这个需求我就想起了利用防盗链的做法来实现"浏览器输入静态文件地址,后端拦截静态请求,先做判断处理,如果文件被误删,则先恢复后再响应,从而确保静态文件(图片)永远不会丢失",于是我百度了一下找到了好几种做法,都试了,都不行.先说第一种,自己重写一个IRouteHandler,然后

使用ASP.NET MVC Futures中的异步Action

之前看过老赵这两篇文章.也研究了一下老赵异步的实现方式. 不过感觉自己扩展的话,在ASP.NET MVC中使用异步还真是麻烦,刚好看到从RC1版开始 ASP.NET MVC Futures中提供了几个支持异步的类. 相关的类包括AsyncActionDescriptor.AsyncController.AsyncControllerActionInvoker. AsyncManager.AsyncResultWrapper.AsyncTimeoutAttribute.NoAsyncTimeout

详解ABP框架中的日志管理和设置管理的基本配置

日志管理 Server side(服务器端) ASP.NET Boilerplate使用Castle Windsor's logging facility日志记录工具,并且可以使用不同的日志类库,比如:Log4Net, NLog, Serilog... 等等.对于所有的日志类库,Castle提供了一个通用的接口来实现,我们可以很方便的处理各种特殊的日志库,而且当业务需要的时候,很容易替换日志组件. 译者注释:Castle是什么:Castle是针对.NET平台的一个开源项目,从数据访问框架ORM到

ASP.NET MVC 3中301永久重定向不带www域名到带www的域名

使用 ASP.NET 又喜欢跟进新技术的朋友可能已经知道,在 ASP.NET 4.0 中增加了 Response.RedirectPermanent() 方法来实现永久重定向,方法的作用在注释中解释的很清楚:执行从所请求 URL 到所指定 URL 的永久重定向,并提供用于完成响应的选项. 在 ASP.NET MVC 3 项目中,我们可以根据需要来使用以下写法实现永久重定向:  代码如下 复制代码 public ActionResult Index() {     return RedirectP

详解ABP框架中的日志管理和设置管理的基本配置_ASP编程

日志管理Server side(服务器端)ASP.NET Boilerplate使用Castle Windsor's logging facility日志记录工具,并且可以使用不同的日志类库,比如:Log4Net, NLog, Serilog... 等等.对于所有的日志类库,Castle提供了一个通用的接口来实现,我们可以很方便的处理各种特殊的日志库,而且当业务需要的时候,很容易替换日志组件. 译者注释:Castle是什么:Castle是针对.NET平台的一个开源项目,从数据访问框架ORM到IO