MVC JS deletethisproduct 未在 HTMLAnchorElement.onclick 中定义(VM457 索引:40)

Posted

技术标签:

【中文标题】MVC JS deletethisproduct 未在 HTMLAnchorElement.onclick 中定义(VM457 索引:40)【英文标题】:MVC JS deletethisproduct is not defined at HTMLAnchorElement.onclick (VM457 Index:40) 【发布时间】:2020-09-20 09:12:17 【问题描述】:

单击按钮时出现此错误:

deletethisproduct 未在 htmlAnchorElement.onclick 中定义

我知道使用 onclick 不是最好的主意,但我正在使用它,因为我想从该实例的模型中获取产品 ID 并将其传递给函数

这是我的链接:

<a href="#" class="btn btn-danger" onclick="deletethisproduct(@item.product_id)">Delete </a>

这是js函数:

@section scripts
@Scripts.Render("~/bundles/jquery")
<script type="text/javascript">

    var deletethisproduct = function (productid) 
        $.ajax(
            method: 'POST',
            url: "/Cart/deletecart",
            data:  "id": productid ,
            success: function (data) 
                console.log(data);
                //  $("#mymodalBodyDiv").html(data);
            ,
            error: function (msg) 
                alert("something wrong" + msg);
            
        );
    
</script> 

那为什么没有定义呢?还有其他想法可以让我获取此实例的产品 ID 并将其传递给没有 onclick() 的函数吗?

编辑: 我认为 jquery 未被读取或类似的东西我不知道为什么,尽管我在具有相同链接的另一个视图中使用它!

<button class="btn btn-dange mythis">this </button>

我试图简单地从这个按钮发出警报,但什么也没发生,没有警报,控制台中也没有出现错误,它也 没有说“$”没有定义!

$('.mythis').click(function () 
        alert("hiiii")
    

【问题讨论】:

【参考方案1】:

用 jquery 试试这个

这种类型的事情使用 jquery 更容易(我认为)。

链接:

<a class="btn btn-danger delete" data-id="@item.product_id">Delete </a>

功能:

@section scripts
        @Scripts.Render("~/bundles/jquery")
        <script type="text/javascript">

            $('.delete').click(function()
                var productid = $(this).attr("data-id");
                $.ajax(
                    method: 'POST',
                    url: "/Cart/deletecart",
                    data:  "id": productid ,
                    success: function (data) 
                        console.log(data);
                        //  $("#mymodalBodyDiv").html(data);
                    ,
                    error: function (msg) 
                        alert("something wrong" + msg);
                    
                );
            );
        </script> 
    

“data-id”可以是来自 jquery 的访问,使用 .attr https://api.jquery.com/attr/

【讨论】:

您好,非常感谢您的帮助,这看起来更好,但请您查看 Edit,注意:这是一个部分视图,我想知道 jquery 不能使用部分视图吗?跨度> 是不是因为 jquery 被调用超过 1 次?并尝试添加 $(document)ready(function()); 问题出在部分视图上,它的 scrtip 代码有问题,所以我将代码放在主视图中,无论如何感谢您的帮助对我有帮助 解决办法可能是把你的js或者jquery逻辑放到另一个js文件里,等你以后调用脚本,有没有检查一下这个->google.com/url?sa=t&source=web&rct=j&url=https://…

以上是关于MVC JS deletethisproduct 未在 HTMLAnchorElement.onclick 中定义(VM457 索引:40)的主要内容,如果未能解决你的问题,请参考以下文章

ext.js的mvc

net MVC +Vue.js+Element UI 笔记

ext.js的mvc开发模式详解

在 MVC 5 项目中添加 Vue.js

asp.net mvc + vue.js + axios.js

Backbone.js 真的是 MVC 吗? [关闭]