如何使用$.ajax?当我使用它时,它没有击中我的控制器操作

发布于 2024-10-30 22:01:58 字数 1155 浏览 0 评论 0原文

任何人都可以帮助我吗?

我有这段代码

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

<script type="text/javascript">


    function GOTO() {
        var datastring = "id=2";
        $.ajax({
            type: "POST",
            url: "/Home/Index",
            dataType: "json",
            data: datastring,
            success: function (json) { Complete(json.result); },
            error: function (request, status, error) {
                //alert("an error occurred: " + error);
                alert("Error saving data. Please contact support.");
            }
        });
    }

    function Complete(result) {
        if (result == "success") {
            alert("Success");  
        }
        else {
            alert("Failed");
        }
    }
</script>

 <input type="button" value="submit" onclick="JavaScript:GOTO()" />

</asp:Content>

,我的控制器代码是这样的,

[HttpPost]
public System.Web.Mvc.JsonResult Index(string datastring)
{
   return Json(new { foo = "bar", baz = "Blech" });
}

但它根本没有击中我的控制器,这是我在视图中做错的事情吗?

谢谢

Can any body help me out.

I have this code

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

<script type="text/javascript">


    function GOTO() {
        var datastring = "id=2";
        $.ajax({
            type: "POST",
            url: "/Home/Index",
            dataType: "json",
            data: datastring,
            success: function (json) { Complete(json.result); },
            error: function (request, status, error) {
                //alert("an error occurred: " + error);
                alert("Error saving data. Please contact support.");
            }
        });
    }

    function Complete(result) {
        if (result == "success") {
            alert("Success");  
        }
        else {
            alert("Failed");
        }
    }
</script>

 <input type="button" value="submit" onclick="JavaScript:GOTO()" />

</asp:Content>

and My Controller Code is this

[HttpPost]
public System.Web.Mvc.JsonResult Index(string datastring)
{
   return Json(new { foo = "bar", baz = "Blech" });
}

But it never hits my controller at all, is that Something I am doing wrong in my View?

thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

够运 2024-11-06 22:01:58

尝试像这样传递数据

$.ajax({
    type: "POST",
    url: "/Home/Index",
    dataType: "json",
    data: { datastring: 'foo bar' },
    success: function (json) { Complete(json.result); },
    error: function (request, status, error) {
        alert("Error saving data. Please contact support.");
    }
});

Try passing the data like this:

$.ajax({
    type: "POST",
    url: "/Home/Index",
    dataType: "json",
    data: { datastring: 'foo bar' },
    success: function (json) { Complete(json.result); },
    error: function (request, status, error) {
        alert("Error saving data. Please contact support.");
    }
});
忘羡 2024-11-06 22:01:58
function Complete(result) {
    if (result == "success") {
        altert("Success");
       // ^ beware!

您的代码中有语法错误。

此外,您不需要在 onclick 属性中指定 JavaScript: 协议,您只需在该位置定义一个标签即可。更好的是,根本不要在 HTML 属性中分配事件侦听器,而是使用不显眼的 JavaScript,包括在 JavaScript 不可用的罕见情况下进行后备。

更新:如果您收到“$.ajax未定义”错误,则您的页面中可能没有包含 jQuery。 将使用 $.ajax(或任何其他 jQuery 函数)的 script 元素添加

<script type="text/javascript" src="path/to/jquery-X.X.X.js"></script>

到页面上方

function Complete(result) {
    if (result == "success") {
        altert("Success");
       // ^ beware!

You have a syntax error in your code.

Moreover, you don't need to specify the JavaScript: protocol in the onclick attribute, you're merely defining a label at that place. Even better, don't assign event listeners in HTML attributes at all, but use unobtrusive JavaScript, including a fallback for the rare case when JavaScript is unavailable.

Update: if you get the "$.ajax is undefined" error, you probably didn't include jQuery in your page. Add

<script type="text/javascript" src="path/to/jquery-X.X.X.js"></script>

To your page above the script element that uses $.ajax (or any other jQuery function).

送你一个梦 2024-11-06 22:01:58

这可能取决于您传入的数据。您的方法需要一个名为 datastring 的参数,但您传入的是“id=2”。

it could be down to what data you are passing in. Your method expects a parameter called datastring but you are passing in 'id=2'.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文