我在asp.net MVC中使用Angularjs。我想使用ajax命令保存数据,但它显示错误消息并且在浏览器中显示“无法加载资源:服务器响应状态为500(内部服务器错误)”。我想打电话 一次用于静态id测试的动作结果,但它不起作用。我的查看页面是:
@{
ViewBag.Title = "SaveOwn";
}
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script>
(function (angular) {
'use strict';
angular.module('SaveOwnData', [])
.controller('SaveOwnDataController', [
'$scope', function ($scope) {
$scope.saveData = {
id: '',
name: '',
designation: '',
mobile: ''
}
$scope.save = function () {
$.ajax({
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: { "id": "1" },
url: "/Home/SaveData",
success: function () {
alert("Success");
},
error: function () {
alert("error");
}
});
};
}]);
})(window.angular);
</script>
<div ng-app="SaveOwnData" ng-controller="SaveOwnDataController as saveData" ng-init="id=0; name=0;designation=0; mobile=0 ">
<input type="text" ng-model="saveData.id" />
<input type="text" ng-model="saveData.name" />
<input type="text" ng-model="saveData.designation" />
<input type="text" ng-model="saveData.mobile" />
<input type="button" data-ng-click="save()" value="Save" />
{{saveData.total()}}
{{saveData.mobile}}
</div>
ActionResult代码是:
public ActionResult SaveData(string id)
{
return View();
}
我想用ajax作为demo演示一次SaveData方法,然后我将使用所有参数。请帮忙。
提前致谢。
答案 0 :(得分:1)
在这种情况下你需要返回一个Json ActionResult,我假设没有名为&#34; SavedData&#34; (例如Savedata.cshtml)。您应该检查chrome网络选项卡并查看错误,但这很可能就是原因。它会在那里归还。
尝试如下:
[HttpPost]
public ActionResult SaveData(string id)
{
return Json(new{status: "success"}); //return json status...
}
可以读取结果如下:
$scope.save = function () {
$.ajax({
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: { "id": "1" },
url: "/Home/SaveData",
success: function (data) {
alert(data.status);
},
error: function () {
alert("error");
}
});
};
}]);
答案 1 :(得分:1)
感谢所有人的帮助,但还有另一个问题。 在我的代码中使用JSON.stringify后,我已成功调用操作,解决了该问题:
def mysplit(html):
in_tag = False
in_word = False
for i, ch in enumerate(html):
if ch == '<':
in_tag = True
elif ch == '>':
in_tag = False
space = ch.isspace() and not in_tag
if not in_word and not space:
in_word = True
begin = i
elif in_word and space:
in_word = False
yield html[begin:i]
if in_word:
yield html[begin:]
testhtml = 'I like <a class="thing1 thing2">this thing</a>'
print(list(mysplit(testhtml)))
# prints: ['I', 'like', '<a class="thing1 thing2">this', 'thing</a>']
答案 2 :(得分:0)
修改AJAX调用参数以使用以~
开头的网址,如下所示:~/Home/SaveData
。
另外,请确认您已将[HttpPost]属性设置如下:
[HttpPost]
public ActionResult SaveData(string id)
{
return View();
}