我如何在剃刀视图中编写服务器端代码之间的JavaScript
本文关键字:服务器端 代码 之间 JavaScript 剃刀 视图 | 更新日期: 2023-09-27 18:13:02
Eg。
$(".button").click(function () {
var index=$(this).closest('tr').index();
var records=@Model.Task[index];
});
在这种情况下,索引是javascript,@Model.Task是服务器端,因此错误显示"名称索引在当前上下文中不存在"。
在点击函数之前,您应该执行以下操作。
var tasks = JSON.parse('@Html.Raw(Model.Task)');
然后你可以做
$(".button").click(function () {
var index=$(this).closest('tr').index();
var records = tasks[index];
});
正如vivek和Andrei所说的那样——这是不可能的。index是javascript中的变量,Model.Task是Model中的数组。它们在不同的时刻被执行。这样想吧。在向客户端(浏览器(发送响应之前,服务器将执行/解析从Model获得的所有值。这意味着客户端将它们视为普通文本,而不是对象。但javascript是在页面下载并呈现后在客户端(浏览器(上执行的(您提供的代码甚至在稍后——点击按钮后(。这意味着在解析Model时,它对javascript"一无所知"。
做你想做的事情的唯一方法是KnowGe发布的内容-将所有Model.Task表保存为javascript对象,然后在你的监听器中使用这个对象