zoukankan      html  css  js  c++  java
  • ASP.NET MVC下使用AngularJs语言(三):ng-options

    今天使用angularjs的ng-options实现一个DropDownList下拉列表。

    准备ASP.NET MVC的model:

     public class MobilePhone
        {
            public int ID { get; set; }
    
            public string Name { get; set; }
        }
    Source Code

    接下来,还得准备Entity:

     public IEnumerable<MobilePhone> MobilePhones()
            {
                return new List<MobilePhone>()
                {
                    {new MobilePhone() { ID = 1, Name = "华为" }},
                    {new MobilePhone() { ID = 2, Name = "苹果" }},
                    {new MobilePhone() { ID = 3, Name = "小米" }},
                    {new MobilePhone() { ID = 4, Name = "中兴" }}
                };
            }
        }
    Source Code

     

    创建ASP.NET MVC的Controller,一个是视图Action,另一个是数据Action:



     public class PhoneController : Controller
        {
            // GET: Phone
            public ActionResult Index()
            {
                return View();
            }
    
            public JsonResult GetMobilePhones()
            {
                MobilePhoneEntity mpe = new MobilePhoneEntity();
                var model = mpe.MobilePhones();
                return Json(model, JsonRequestBehavior.AllowGet);
            }
        }
    Source Code


    最后,我们需要准备一个angularjs的Controller:


    pilotApp.controller('PhoneCtrl', ['$http', '$location', '$rootScope', '$scope',
        function ($http, $location, $rootScope, $scope) {
            var obj = {};
    
            $http({
                method: 'POST',
                url: '/Phone/GetMobilePhones',
                dataType: 'json',
                headers: {
                    'Content-Type': 'application/json; charset=utf-8'
                },
                data: JSON.stringify(obj),
            }).then(function (response) {
                $scope.Phones = response.data;
            });
    
        }]
    );
    Source Code

    不管是ASP.NET MVC还是AngularJs程序代码均准备好,现在我们需要在ASP.NET MVC视图实现下拉列表:

    @{
        ViewBag.Title = "Index";
        Layout = "~/Views/Shared/_Layout.cshtml";
    }
    
    
    <div ng-app="PilotApp" ng-controller="PhoneCtrl">
        <select ng-model="ddlPhones" ng-options="MobilePhone.Name for MobilePhone in Phones"></select>
    </div>
    
    <script src="~/Angularjs/app.js"></script>
    <script src="~/Angularjs/PhoneController.js"></script>
    Source Code

    上面有句ng-options绑定的表达式中,名词所来自何处,可参考下图指示:

    动态效果演示:

     

  • 相关阅读:
    div+css之清除浮动
    ASP.NET repeater添加序号列的方法
    html中给图片添加热点
    jquery中read与js中onload区别
    从.net转型,聊聊最近一些面试,薪资和想法
    (9)分布式下的爬虫Scrapy应该如何做-关于ajax抓取的处理(一)
    数学之美--关于图论引申出来的爬虫构想
    (8)分布式下的爬虫Scrapy应该如何做-图片下载(源码放送)
    【转】Bloom Filter布隆过滤器的概念和原理
    【转】Python中的GIL、多进程和多线程
  • 原文地址:https://www.cnblogs.com/insus/p/8527395.html
Copyright © 2011-2022 走看看