我正在尝试使用外部文件中的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");
}
答案 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) {
}
});
}