当我打电话给ajax时,为什么错误?

时间:2014-03-25 08:56:24

标签: ajax asp.net-mvc

我有一个Edit.cshtml页面,有1个部分模板调用。在该模板中,我进行了ajax调用,我的控制器是home,操作名称是savedata

ajax功能

 $.ajax({
        url: "CountryZone/SaveData",
        type: 'POST',
        data: { data: selectedID, id: id },
        dataType: "html",
        success: function (result) {
            alert("Success");


        },
        error: function (result) {
            data.str = null;
            alert("Error");


        },
    });

控制器: -

public ActionResult Savedata(string data, int CountryZoneId)
    {
        return null;
    }

现在我的ajax电话正在进行

有url错误:--- url是Home / edit / Home / Savedata而不是这里只有Home / SaveData

2 个答案:

答案 0 :(得分:1)

在MVC应用程序中对网址进行硬编码是一个坏主意。

更改此行:

url: "CountryZone/SaveData",

对此:

url: "/CountryZone/SaveData",

我建议至少在视图中使用Url.Action并将其存储在js变量中。

答案 1 :(得分:1)

使用标准MVC代码如下:

  url: '@Url.Action("SaveData","CountryZone")',

完整代码

$.ajax({
        url: '@Url.Action("SaveData","CountryZone")',
        type: 'POST',
        data: { data: selectedID, CountryZoneId: id },
        dataType: "html",
        success: function (result) {
            alert("Success");


        },
        error: function (result) {
            data.str = null;
            alert("Error");


        },
    });

    [HttpPost]
    public ActionResult Savedata(string data, int CountryZoneId)
    {
        return null;
    }