首页 新闻 搜索 专区 学院

ASP.NET MVC3.0 DropDownList的二级联动问题,都是从数据库读取的,全部都写好了,但是没有出现联动效果?

0
悬赏园豆:50 [已解决问题] 解决于 2012-05-31 20:55
cshtml部分代码:

<div class="editor-label">
                    @Html.Label("房间类型: ")
                    @Html.DropDownList("TypeID", ViewBag.Types as IEnumerable<SelectListItem>, "--请选择--")                    
                    @Html.Label("房间号: ")
                    @Html.DropDownList("RoomID", ViewBag.Rooms as IEnumerable<SelectListItem>, "--请选择--")
                </div>


js代码:

<script type="text/javascript">// <![CDATA[
    $(document).ready(function () {
        $("#TypeID").change(function () {
            var url = "/Guest/GetRoomNumber/" + $("#TypeID").val() + "/"; //规则是控制器/方法/参数
            $.getJSON(url, function (data) {
                $('#RoomID').html('');
                $.each(data, function (i, item) {
                    $('#RoomID').append($("<option></option>").val(item.RoomID).html(item.Number));
                });
            });
        });
    });// ]]>
                    </script>

Controller的代码:
public class GuestController : Controller
    {
         HotelManageEntities db = new HotelManageEntities();
          public ActionResult Create()
        {
             ViewBag.Types = db.RoomType.ToList().Select(c => new SelectListItem { Value = c.TypeID.ToString(), Text = c.TypeName });
            ViewBag.Rooms = db.Room.ToList().Select(c => new SelectListItem { Value = c.RoomID.ToString(), Text = c.Number });
            }
            
            public JsonResult GetRoomNumber(int id)
        {
            HotelManageEntities context = new Models.HotelManageEntities();

            var RoomNumber = from a in context.Room where a.TypeID == id select a; 
            return Json(RoomNumber.ToList(), JsonRequestBehavior.AllowGet);
        }
    }


        
吾血之血的主页 吾血之血 | 初学一级 | 园豆:157
提问于:2012-05-31 17:06
< >
分享
最佳答案
0

1——

在$("#TypeID").change事件中跟踪,确认这个事件被触发了

2——

确认你生成的URL地址,可以通过ALERT的方式查看

3——

确认你的URL地址能正确返回数据

4——

确认正确返回数据后的事件处理程序被正确的执行

收获园豆:50
无之无 | 大侠五级 |园豆:5085 | 2012-05-31 17:19

查出来了,是由于查询的数据关联的表太多,导致死循环了。

吾血之血 | 园豆:157 (初学一级) | 2012-05-31 20:53

@睡着的花花: 问题解决了就好。

无之无 | 园豆:5085 (大侠五级) | 2012-05-31 21:01

@笨笨蜗牛: 请问如果上面的列子做三级联动怎么添加语句呢?

吾血之血 | 园豆:157 (初学一级) | 2012-06-01 12:29
其他回答(1)
0

感觉怪怪的,ViewBag.Rooms = db.Room.ToList().Select(c => new SelectListItem { Value = c.RoomID.ToString(), Text = c.Number });
这句把房间全部加载进来? 没区房间分类型吗?

海阔天空XM | 园豆:201 (菜鸟二级) | 2016-05-04 16:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册