任何人都可以帮助我。
我有这段代码
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<script type="text/javascript">
function GOTO() {
var datastring = "id=2";
$.ajax({
type: "POST",
url: "/Home/Index",
dataType: "json",
data: datastring,
success: function (json) { Complete(json.result); },
error: function (request, status, error) {
//alert("an error occurred: " + error);
alert("Error saving data. Please contact support.");
}
});
}
function Complete(result) {
if (result == "success") {
alert("Success");
}
else {
alert("Failed");
}
}
</script>
<input type="button" value="submit" onclick="JavaScript:GOTO()" />
</asp:Content>
和我的控制器代码就是这个
[HttpPost]
public System.Web.Mvc.JsonResult Index(string datastring)
{
return Json(new { foo = "bar", baz = "Blech" });
}
但它根本没有击中我的控制器,是我在我的视图中做错了什么?
感谢
答案 0 :(得分:3)
尝试像这样传递data
:
$.ajax({
type: "POST",
url: "/Home/Index",
dataType: "json",
data: { datastring: 'foo bar' },
success: function (json) { Complete(json.result); },
error: function (request, status, error) {
alert("Error saving data. Please contact support.");
}
});
答案 1 :(得分:2)
function Complete(result) {
if (result == "success") {
altert("Success");
// ^ beware!
您的代码中存在语法错误。
此外,您无需在JavaScript:
属性中指定onclick
协议,只需在该位置定义标签即可。更好的是,不要在HTML属性中分配事件监听器,而是使用不引人注目的JavaScript,包括在JavaScript不可用时罕见的情况下的回退。
更新:如果您收到“$.ajax
未定义”错误,则可能未在页面中包含jQuery。添加
<script type="text/javascript" src="path/to/jquery-X.X.X.js"></script>
到您的页面上面使用script
(或任何其他jQuery函数)的$.ajax
元素。
答案 2 :(得分:2)
它可能取决于您传入的数据。您的方法需要一个名为datastring的参数,但您传入'id = 2'。