ASP.NET?MVC使用Knockout獲取數(shù)組元素索引的2種方法
在遍歷數(shù)組、集合的時(shí)候,通常要獲取元素的索引,本篇體驗(yàn)使用Knockout獲取索引的2種方法。
假設(shè)有這樣的一個(gè)模型:
namespace UseIndex.Models { public class Student { public int Id { get; set; } public string Name { get; set; } } }
在HomeController中,先模擬一個(gè)Student的集合,在投影出Name屬性的集合,最后以Json返回給前臺(tái)視圖。
using System.Collections.Generic; using System.Linq; using System.Web.Mvc; using UseIndex.Models; namespace UseIndex.Controllers { public class HomeController : Controller { public ActionResult Index() { return View(); } public JsonResult GetStudentNames() { var students = new List<Student>() { new Student(){Id = 1, Name = "小明"}, new Student(){Id = 2, Name = "嘯天"} }; var names = from student in students select new {student.Name}; return Json(names, JsonRequestBehavior.AllowGet); } } }
在Home/Index.cshtml中:
@{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Index</title> <script src="~/Scripts/jquery-1.8.2.min.js"></script> <script src="~/Scripts/knockout-2.2.0.js"></script> <script type="text/javascript"> $(function() { var vm = new ViewModel(); ko.applyBindings(vm); vm.init(); }); function ViewModel() { var self = this; self.items = ko.observableArray([]); self.showItemIndex = function(item, event) { var context = ko.contextFor(event.target); //獲取綁定元素的上下文;event.target綁定View Model的DOM元素 var index = context.$index(); alert("當(dāng)前索引是:" + index); }; self.init = function() { $.getJSON('@Url.Action("GetStudentNames","Home")', function(data) { var arr = []; for (var i = 0; i < data.length; i++) { arr[i] = data[i].Name; } self.items(arr); }); }; } </script> <style type="text/css"> //樣式略 </style> </head> <body> <div> <table> <thead> <tr> <th>索引</th> <th>編號</th> <th>名稱</th> <th>在View Model中的索引</th> </tr> </thead> <tbody data-bind="foreach: items"> <tr> <td data-bind="text: $index"></td> <td data-bind="text: $index() + 1"></td> <td data-bind="text: $data"></td> <td><a href="#" rel="external nofollow" data-bind="click: $root.showItemIndex">點(diǎn)擊顯示索引</a></td> </tr> </tbody> </table> </div> </body> </html>
以上,$data是指當(dāng)前集合元素。$root是指根context中的ViewModel。
運(yùn)行:
總結(jié)
獲取集合或數(shù)組元素的索引有2種方式:
1、通過data-bind="text: $index"或data-bind="text: $index() + 1"
2、在View Model中通過方法來獲得:先獲取到上下文,再context.$index()
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
- ASP.NET?MVC為用戶創(chuàng)建專屬文件夾
- ASP.NET?MVC實(shí)現(xiàn)多選下拉框保存并顯示
- ASP.NET?MVC打印表格并實(shí)現(xiàn)部分視圖表格打印
- ASP.NET?MVC實(shí)現(xiàn)路由功能
- ASP.NET?MVC創(chuàng)建XML文件并實(shí)現(xiàn)元素增刪改
- ASP.NET?MVC下拉框中顯示枚舉項(xiàng)
- ASP.NET MVC把表格導(dǎo)出到Excel
- ASP.NET MVC使用jQuery Template實(shí)現(xiàn)批量更新
- ASP.NET?MVC使用JCrop上傳并裁剪圖片
- ASP.NET MVC實(shí)現(xiàn)文件下載
相關(guān)文章
ASP.NET通過更改Url進(jìn)行頁面?zhèn)髦档膶?shí)現(xiàn)代碼
這篇文章主要介紹了ASP.NET通過更改Url進(jìn)行頁面?zhèn)髦档膶?shí)現(xiàn)代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04.Net Core配置Configuration具體實(shí)現(xiàn)
這篇文章主要介紹了.Net Core配置Configuration具體實(shí)現(xiàn),文中運(yùn)用大量代碼進(jìn)行講解,如果有對相關(guān)知識(shí)感興趣的小伙伴可以參考這篇文章,希望可以幫助到你2021-09-09Asp.net mvc實(shí)時(shí)生成縮率圖到硬盤
這篇文章主要介紹了Asp.net mvc實(shí)時(shí)生成縮率圖到硬盤的相關(guān)資料,需要的朋友可以參考下2016-05-05visual Studio 2017創(chuàng)建簡單控制臺(tái)程序
這篇文章主要為大家詳細(xì)介紹了visual Studio 2017創(chuàng)建簡單控制臺(tái)程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11.NET中應(yīng)用程序內(nèi)共享UdpClient聯(lián)機(jī)的實(shí)現(xiàn)方法
本篇文章介紹了,.NET中應(yīng)用程序內(nèi)共享UdpClient聯(lián)機(jī)的實(shí)現(xiàn)方法。需要的朋友參考下2013-05-05