0

我有一个如下所示的 jQuery 脚本。

$.ajax({
    type: "post",
    url: "/TestPage/Parameter",
    data: JSON.stringify(formData),
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',

    success: function (data, textStatus, jqXHR) {
        alert('created!');
    },
    error: function (xhr, status, p3, p4) {
        var err = "Error " + " " + status + " " + p3;
        if (xhr.responseText && xhr.responseText[0] == "{")
            err = JSON.parse(xhr.responseText).message;
        alert(err);
    }
});

我的网站有一个默认页面 www.example.com,它与 www.example.com/Home/Index 相同。

当我去 www.example.com 并触发 jQuery 时,它工作正常。该网站发送一个请求,www.example.com/TestPage/Parameter但是当我去 www.example.com/Home/Index 并触发脚本时,它会发出一个www.example.com/Home/Index/TestPage/Parameter不存在的请求。

有没有办法解决这个问题?

4

1 回答 1

2

让 ASP.NET MVC 助手为您完成工作。在表单的标记中使用@Url.Action帮助器。看这个文件

<form action="@Url.Action("Parameter", "TestPage")" method="POST">

然后,在您的 JQuery 中,您可以解析表单属性。

var postForm = function (item) {
    var $form = $(item).parents('form:first');
    var options = {
        url: $form.attr("action"),
        type: $form.attr("method"),
        data: $form.serialize()
    };

    $.ajax(options);
}      

在提交时调用函数,按钮单击任何内容并传入this

$('body').on('click','#create', function () {
    postForm(this);
});
于 2013-10-17T12:02:18.373 回答