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>編號(hào)</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)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(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)文章
Web.Config文件配置之限制上傳文件大小和時(shí)間的屬性配置
在Web.Config文件中配置限制上傳文件大小與時(shí)間字符串時(shí),是在httpRuntime httpRuntime節(jié)中完成的,需要設(shè)置以下2個(gè)屬性:maxRequestLength屬性與ExecutionTimeout屬性,感興趣的朋友可以了解下,或許對(duì)你有所幫助2013-02-02
Asp.net MVC SignalR來做實(shí)時(shí)Web聊天實(shí)例代碼
本篇文章主要介紹了Asp.net SignalR來做實(shí)時(shí)Web聊天實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
asp.net DbProviderFactory的使用-示例
NET 2.0有一個(gè)抽象工廠模式的典型應(yīng)用:通過DBProviderFactory 可以對(duì)不同數(shù)據(jù)庫進(jìn)行操作。2009-11-11
Asp.Net?Core?使用Monaco?Editor?實(shí)現(xiàn)代碼編輯器功能
在項(xiàng)目中經(jīng)常有代碼在線編輯的需求,比如修改基于Xml的配置文件,編輯Json格式的測試數(shù)據(jù)等。這篇文章主要介紹了Asp.Net?Core?使用Monaco?Editor?實(shí)現(xiàn)代碼編輯器功能,需要的朋友可以參考下2022-01-01
asp.net gridview實(shí)現(xiàn)全選,反選與刪除記錄的操作代碼
asp.net gridview實(shí)現(xiàn)全選,反選與刪除記錄的操作代碼,需要的朋友可以參考下。2011-07-07
擁有網(wǎng)頁版小U盤 ASP.NET實(shí)現(xiàn)文件上傳與下載功能
這篇文章主要為大家詳細(xì)介紹了ASP.NET實(shí)現(xiàn)文件上傳與下載功能,類似于U盤功能,具有一定的參考價(jià)值。感興趣的小伙伴們可以參考一下2016-08-08
詳解ASP.NET Core應(yīng)用中如何記錄和查看日志
本篇文章主要介紹了ASP.NET Core應(yīng)用中如何記錄和查看日志,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2016-12-12
DropDownList綁定選擇數(shù)據(jù)報(bào)錯(cuò)提示異常解決方案
DropDownList控件在綁定選擇數(shù)據(jù)時(shí)提示報(bào)錯(cuò)異常詳細(xì)信息為:有一個(gè)無效 SelectedValue,因?yàn)樗辉陧?xiàng)目列表中,應(yīng)該有很多新手朋友們遇到過吧,本文將給予解決方法,感興趣的朋友可以了解下,希望本對(duì)你有所幫助2013-01-01
Asp.net之TextBox只允許輸入數(shù)字的方法總結(jié)
Asp.net之TextBox只允許輸入數(shù)字的方法總結(jié),需要的朋友可以參考一下2013-02-02

