我有一个简单的用例,它只是向我的控制器发送一个AJAX请求并接收结果。我当前的问题是Ajax调用返回成功,并以当前页面的完整html代码作为内容,而不是我的Controller方法的返回值。
我是一名Web开发人员初学者,有关Visual Studio中IIS Express配置的提示也可能会有所帮助。即使这种和平的代码是更大项目的一部分。
我知道有很多类似的问题,但是它们根本没有帮助: javascript ajax call not not hitting controller Asp.net MVC Ajax call not calling controller method
这是我的剃刀代码:
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.Partial("CEinzelkondition", Model)
<input id="SubmitButton" type="submit" value="Speichern" />
}
这是我的JS代码:
function calculateRate() {
$.ajax({
type: "POST",
url: "@Url.Action("CalculateRate", "Marzipan")",
data: "test",
dataType: "text",
contentType: "text",
success: function (response) {
alert("success: " + response);
},
failure: function (response) {
alert("fail: " + response);
},
error: function (xhr, desc, error) {
window.alert('description: ' + desc);
window.alert('error: ' + error);
}
});
};
通过html部分视图中的按钮调用JS函数。
这是我的控制器代码:
[HttpPost]
[ValidateAntiForgeryToken]
public string CalculateRate(string data)
{
data = "success!";
return data;
}
答案 0 :(得分:1)
您已指定[ValidateAntiForgeryToken]
,但没有将其发布在ajax调用中。您只是在发送一个字符串“ test”。
查看此处...