Uncaught Type:Undefined不是函数JS错误

时间:2014-09-23 06:15:01

标签: javascript html5 asp.net-mvc-4

我一直在寻找这个并尝试了很多找到的解决方案,但这在我的案例中并不起作用。 在我的带有下拉更改事件的MVC 4应用程序中,我调用一个JS方法将所选值传递给控制器​​,该控制器工作正常,但在控制台中我已经在每次更改事件中继续使用此错误。

以下是我的剃须刀来源:

    <div>
        @Html.LabelFor(model => model.CustId) 
        @Html.DropDownListFor(model => model.CustId, new SelectList(Model.ddlCust, "Value", "Text"), "All Customer", new { id = "CustID", onchange = "ShowCust()", @class = "form-control" })
        @Html.ValidationMessageFor(model => model.CustId)
   </div> 

我的 JS 客户端功能如下:

<script>
    function ShowCust() {
            var custId = $("#CustID").val();
            var Url = "@Url.Content("~/Customer/GetCustId")";
            $.ajax({
                url: Url,
                type: 'POST',
                dataType: 'json',
                data: { CustID: custId },
                success: function (data) {
                    return data;
                }
            });
        }
</script>

在Console中,它会在每次下拉列表更改时抛出错误:

uncaught type error: undefined is not a function.

最后在源代码中显示为:

<script>(function() {with (this[2]) {with (this[1]) {with (this[0]) {return function(event) {ShowCust()
};}}}})</script>

它还在函数ShowCust({ ShowCust)之前标记了括号中带下划线的部分。

我无法弄清楚我在这里犯了什么错误。

有没有人看到我的HTML或JavaScript有任何问题?还是我编写脚本的方式?提前谢谢。

1 个答案:

答案 0 :(得分:0)

I think you have miss out the '@' for Id & onChange

new {@id =&#34; CustID&#34;,@ onchange =&#34; ShowCust()&#34;,@ class =&#34; form-control&#34; })

@id =&#34; CustID&#34; @onchange =&#34; ShowCust()&#34;