我如何在剃刀视图中编写服务器端代码之间的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是服务器端,因此错误显示"名称索引在当前上下文中不存在"。

我如何在剃刀视图中编写服务器端代码之间的JavaScript

在点击函数之前,您应该执行以下操作。

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对象,然后在你的监听器中使用这个对象