jquery .click函数在c#mvc3 w / Razor中不起作用

时间:2013-07-08 14:19:43

标签: c# jquery asp.net-mvc razor

很长时间以来,我一直在试图在我的c#网站上创建一个简单的.click jquery方法。我只是想让它调用我的控制器中的一个函数,但我似乎无法点击任何按钮进行注册。其中的调用非常类似于另一个控件的.change()函数,它可以正常工作。

有问题的JQuery方法:

$('#addUserButton').click(function () {
            var e = document.getElementById('searchDDL');
            var itemText = e.options[e.selectedIndex].text;
            var url = encodeURI('@Url.Action("AddUser")' + "?User=" + itemText);
        });

用于触发上述功能的按钮的HTML:

<button id="addUserButton" type="button" value="addUser">&gt;</button>

我已经研究过并试过的一些事情:

  • 从.click()方法更改为.live(“click”等)方法没有任何区别。
  • 我看到设置按钮类型=“提交”会有问题,所以我将其更改为“按钮”。
  • 我确保将它包含在document.ready()中 - 我在研究其他问题之前就已经这样做了。

我为问题here创建了一个jsfiddle。我不得不删除大量敏感信息,因此页面没有完全充实。它适用于内部应用程序,只需与IE一起使用。

编辑:下面我要添加我想在控制器中调用的函数;其他海报已经证实jquery正在按预期工作,所以我倾向于认为它与我的c#有关。

public ActionResult AddUser(string User)
    {
        //numUsers = App.NumberUsers + 1;
        selectedUsers.Add(User);
        return RedirectToAction("ApplicationForm");
    }

3 个答案:

答案 0 :(得分:1)

您是否尝试过调试功能,甚至在其中添加警报以充实发生的事情。

$('#addUserButton').click(function () {
alert("FUNCTION IS GETTING CALLED ON CLICK EVENT");
            var e = document.getElementById('searchDDL');
alert(e);
            var itemText = e.options[e.selectedIndex].text;
alert(itemText);
            var url = encodeURI('@Url.Action("AddUser")' + "?User=" + itemText);
alert(url);
        });

看起来你的函数在获取URL后不会发出AJAX请求。

答案 1 :(得分:0)

这不是像这个额外的关闭>括号那么愚蠢吗?

<button id="addUserButton" type="button" value="addUser">></button>

答案 2 :(得分:0)

从您的JSFiddle看来,您似乎未包括jQuery

位于JSFiddle的左上角。

updated fiddle工作正常。请记住,您要包含jQuery,因此请尝试使用其功能并保留Javascript。