asp.net mvc SelectList 的selected 失效及解决方案

在asp.net mvc的强类型视图(strongly typed view)下拉列表,在Controller中设定的选择项在View上选中失效了。
下面是我的代码

[AcceptVerbs(HttpVerbs.Post)]
        public ActionResult AllUnSendMail(FormCollection collection)
        {
            int sysId = Convert.ToInt32(collection["ddlSysid"]);
            int selectedVal =-1;
            List<SystemInfoEntity> allSys = SystemInfoClient.GetAll();
            allSys.Insert(0, new SystemInfoEntity
            {
                SysID = -1,
                Name = "请选择"
            });
            if (sysId > 0)
            {
                selectedVal = sysId;
            }
            SelectList serviceList = new SelectList(allSys, "SysID", "Name", selectedVal);
            ViewData["ddlDataSysid"] = serviceList;
            ViewData["Subject"] = string.Empty;
            var viewData = MessageQueries.GetAllUnSendMails(sysId, 1, 15);
            return View(viewData);
        }

相应的视图的下列列表

<%=Html.DropDownList("ddlDataSysid", (SelectList)ViewData["ddlDataSysid"])%>

问题就出在DropDownList的Name和ViewData相同了,只要修改一下Name如下就可以了

<%=Html.DropDownList("ddlSysid", (SelectList)ViewData["ddlDataSysid"])%>

本文来自合作伙伴“doNET跨平台”,了解相关信息可以关注“opendotnet”微信公众号

时间: 2024-08-27 12:38:03

asp.net mvc SelectList 的selected 失效及解决方案的相关文章

ASP.NET MVC下基于异常处理的完整解决方案

EntLib的异常处理应用块(Exception Handling Application Block)是一个不错的异常处理框架,它使我们可以采用配置的方式来定义异常处理策略.而ASP.NET MVC是一个极具可扩展开发框架,在这篇文章中我将通过它的扩展实现与EntLib的集成,并提供一个完整的解决异常处理解决方案.[源代码从这里下载] 目录 一.基本异常处理策略 二.通过自定义Action处理异常 三.通过配置的Error View处理异常 四.自定义ActionInvoker:Excepti

为ASP.NET MVC扩展异步Action功能

异步请求处理是ASP.NET 2.0中引入的高级特性,它依托IO Complete Port,对于提高IO密集型应用程 序的吞吐量非常重要(详见原理描述和性能测试).但是目前ASP.NET MVC框架缺少异步Action功能,这 也就是老赵经常挂在嘴边的那个"目前ASP.NET MVC所缺少的非常重要的功能".在TechED 2008 China的 Session中我曾经给出过一个所谓的"解决方案",但是它复杂性之高使那个解决方案有太多限制.为了 弥补TechED上

asp.net-请教ASP.NET MVC开发的网站,在手机浏览器上js点击事件失效的问题

问题描述 请教ASP.NET MVC开发的网站,在手机浏览器上js点击事件失效的问题 之前没有接触过手机浏览器端的东西,一直做的是web方面,最近刚做了一个新项目刚刚上线,是一个挖宝游戏,http://wabao.edushi.com 经理要求把手机端兼容性弄一下让手机端也可以正常使用,但是我发现用手机访问,很多点击事件都失效了,有一部分还是有效的,不明白为什么,我用chrome的toggle device mode,也是某些按钮是有效的某些按钮点了就没反应,console也没报错,完全不知道问

ASP.NET MVC中使用DropDownList地详解

在ASP.NET MVC中,尽管我们可以直接在页面中编写HTML控件,并绑定控件的属性,但更方便的办法还是使用HtmlHelper中的辅助方法.在View中,包含一个类型为HtmlHelper的属性Html,它为我们呈现控件提供了捷径.   我们今天主要来讨论Html.DropDownList的用法,首先从Html.TextBox开始. Html.TextBox有一个重载方法形式如下: public static string TextBox(this HtmlHelper htmlHelper

ASP.NET MVC之AJAX

本文的例子基于Asp.Net MVC Preview 3,并采用了jQuery完成客户端的JavaScript功能. 之前的两篇文章粗粗的对Asp.Net MVC做了介绍.这里强烈推荐一个网站,有兴趣的朋友可以看这里.这是Rob Conery的个人网站,他采用了Asp.Net MVC做了一个Demo, 不仅在codeplex上提供了这个项目的源代码,还提供了15个视频,这些视频的内容包括从项目的构思.到设计.再到实现和重构的一个完整的过程. ASP.NET Web Form下的AJAX 在传统的

ASP.NET MVC中对Model进行分步验证的解决方法

在我之前的文章:ASP.NET MVC2.0结合WF4.0实现用户多步注册流程中将一个用 户的注册分成了四步,而这四个步骤都是在完善一个Model的信息,但是又分页面 填写信息的,当时我加上ModelState.IsValid这句验证代码的时候,根本没法通 过验证,因为在注册的前面三步,注册用户的Model信息都没填写完整,而 ModelState.IsValid是对一个实体的所有属性进行判断验证的.当时很纠结,因 为刚接触Asp.net MVC,故没有找到解决方案.这篇文章将给出解决的办法.看

ASP.NET MVC案例教程(基于ASP.NET MVC beta)—第五篇:MVC整合Ajax

摘要 本文将从完成"输入数据验证"这个功能出发,逐渐展开ASP.NET MVC与Ajax结合的方法.首先,本文将使用ASP.NET MVC提供的同步方式完 成数据验证.而后,将分别结合ASP.NET AJAX和JQuery将这个功能重构成异步形式. 数据验证 在上一篇文章中,我们完成了发布公告的功能.但是从健壮性角度看,这个功能并不完善,因为一般情况下,我们输入的数据要符合一定的 约束条件,例如,在我们的例子中,我们至少不能将空字符串作为标题或内容吧.下面,我们来为程序加入数据验证功能

ASP.NET MVC案例教程(基于ASP.NET MVC beta)—第四篇:传递表单数据

前言 通过前几篇文章,我们已经能比较自如的使用ASP.NET MVC来呈现页面和数据了.但是,有一个大问题没有解决:如何处理表单 数据.例如,我们将要实现的公告发布功能,用户肯定是在某个表单页面输入标题.正文等内容,而后提交,然后表单数据要被传递到相应的 地方交由业务逻辑组件处理. 在传统的ASP.NET下,使用的是Model1模式,每个aspx页面有一个同名的aspx.cs文件,当提交表单时,默 认数据被提交到这个同名aspx.cs文件中某个方法下处理.但是,在ASP.NET MVC中,这种方

ASP.NET MVC的Model元数据与Model模板:将”ListControl”引入ASP.NET MVC

我们不仅可以创建相应的模板来根据Model元数据控制种类型的数据在UI界面上的呈现方法,还可以通过一些扩展来控制Model元数据本身.在某些情况下通过这两者的结合往往可以解决很多特殊数据的呈现问题,我们接下来演示的实例就是典型的例子.[本文已经同步到<How ASP.NET MVC Works?>中] 传统的ASP.NET具有一组重要的控件类型叫做列表控件(ListControl),它的子类包括DropDownList.ListBox.RadioButtonList和CheckBoxList等