如何使用外部文件中的Jquery Ajax将数据发布到控制器方法?

时间:2015-08-16 16:51:28

标签: jquery ajax asp.net-mvc

我正在尝试使用外部文件中的ajax将数据发布到我的数据库中。 我知道这在视图中有用

    function SubmitClientInformationData() {
    var dataToSubmit = ClientInformationData();
    $.ajax({
        type: "POST",
        url: "@Url.Action('AddClientInformation')",
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        data: JSON.stringify(dataToSubmit),
        success: function (data) { },
        complete: function (e) {
        }
    });
}

但是当我将它添加到外部JS文件时,它会被调用,但它永远不会到达我的控制器方法。 我看了this 我尝试了这里提到的,但是改为按钮,它看起来像这样

<input id="btnSaveClientInfo" type="button" data-save-action-url="@Url.Action("AddClientInformation")" value="Save" class="btn btn-primary" />

但它从来没有达到我在控制器中查看视图的方法。

简而言之,我在外部文件中调用ajax并在视图中有一个按钮,当我单击按钮时,数据会到达我的外部文件,但我想调用视图中的方法&#39 ; s控制器将数据发送到我的数据库。这是我试图从控制器调用的方法的基础

[HttpPost]
public ActionResult AddClientInformation(ClientInformation clientinformation)
{
    #region Initialization

    OQOE = new OQOEDAL();

    #endregion

    return View("Preferences");
}

1 个答案:

答案 0 :(得分:0)

只有从视图中进行AJAX调用时,代码才有效。如果你想从JS文件中使用它,你将不得不做类似以下的事情 -

将以下内容添加到您的视图中 -

<script type="text/javascript">
var AddClientURLParam = {
    AddClientURL : '@Url.Action("AddClientInformation")'
}
</script>
<script type="text/javascript" src="<Location of your JS File>"></script>

请确保在此script块下方引用您的JS文件,并将AJAX调用的方式更改为此类 -

function SubmitClientInformationData() {
    var dataToSubmit = ClientInformationData();
    $.ajax({
        type: "POST",
        url: AddClientURLParam.AddClientURL,
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        data: JSON.stringify(dataToSubmit),
        success: function (data) { },
        complete: function (e) {
        }
    });
}