我一直在寻找这个并尝试了很多找到的解决方案,但这在我的案例中并不起作用。 在我的带有下拉更改事件的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有任何问题?还是我编写脚本的方式?提前谢谢。
答案 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;