錯誤我試圖執行與$ http.post調用下面的html發生的相同的操作。使用以下HTML時,post方法被成功調用。
<form action="/register/" enctype="multipart/form-data" method="post" class="ng-pristine ng-valid" _lpchecked="1">
的HTML被替換爲:
<form name="registrationForm">
而且angularJS提交方法被稱爲通過以下事項:
$scope.save = function() {
$http.post('/register/', {model:$scope.registration})
.success(function (data) {
})
.error(function (err) {
$log.error(err);
});
};
的是它和$ log.error記錄的錯誤是:
A public action method 'Get' was not found on controller 'RegistrationSurfaceController'.
And my Po st方法永遠不會被調用。
[HttpGet]
public ActionResult Get()
{
var model = new RegistrationModel();
return PartialView("umbRegistrationForm", model);
}
[HttpPost]
public ActionResult Post(RegistrationModel model)
{
if (!ModelState.IsValid)
{
return View(model);
}
model.Id = Guid.NewGuid();
model.Amount = 20;
var googleDocs = new GoogleDocsProcessor();
googleDocs.AddRegistration(model, DateTime.Now);
TempData.Add("RegistrationSuccess", true);
TempData.Add("RegistrationModel", model);
return View(model);
}
這是我在開發工具上的網絡選項卡。與代碼
$scope.save = function() {
$http.post('/register/', $scope.registration)
.success(function (data) {
})
.error(function (err) {
$log.error(err);
});
};
:
你在DevTools的Network選項卡中看到了什麼?你的請求是什麼樣的?有沒有GET請求? – gkalpak 2014-08-31 17:24:36
它顯示一個POST寄存器/ url。那麼,什麼會導致我收到這個錯誤? – 2014-08-31 20:41:42
我不確定,但它必須是你的服務器端的東西。但有一件事情可以確定:提交表單發送數據「x-www-form-urlencoded」,但是「$ http.post」(默認情況下)將數據作爲JSON發送。所以,要麼確保你的後端可以處理JSON編碼的負載,要麼採取適當的步驟讓'$ http.post'發送數據'x-www-form-urlencoded'(如果你決定去掉這條路)。 – gkalpak 2014-09-01 02:03:40