У меня есть форма:
<form ng-controller="accountContentController" name="editUserForm" action="PersonalInformation" method="post">
@Html.TextBoxFor(m => m.ZipCode, new { id = "zipCode", name = "zipCode", @class = "form-control", @maxlength = "5", @required = "required", ng_model = "zipCode", ng_pattern = @"/[0-9]{5}$/" })
@Html.PasswordFor(m => m.Password, new { id = "password", name = "password", ng_model = "password", @class = "form-control", @required = "required"})
<input id="submit" type="submit" class="btn-block secondary-button save-changes" value="@Translator.Translate("SAVE_CHANGES")">
</form>
У меня есть контроллер в mvc:
[HttpPost]
public ActionResult PersonalInformation(PersonalInformationModel model)
{
return View(model);
}
Как я могу отправить форму для отправки данных с представления на контроллер с угловым?
Сначала вам понадобится пользовательская функция отправки ajax в кнопку отправки.
<button type="button" ng-click="submit(editUserForm)">@Translator.Translate("SAVE_CHANGES")</button>
Затем обработайте подачу в контроллере
$scope.submit = function(form) {
// client side error checking
if (form.$invalid) {
// do something and return
}
// pack all parameter to match with keys in your model
var model = {
ZipCode: $scope.zipcode,
Password: $scope.password
}
// send to your controller
$http.post('/className/PersonalInformation', {model: model})
.success(function(data, status, headers, config){
// handle success here
})
.error(function(data, status, headers, config){
// handle error here
});
}
Затем в вашем контроллере измените ActionResult на JsonResult
public JsonResult PersonalInformation(PersonalInformationModel model)
{
// do something with model
var result = doSomething(model);
return Json(result, JsonRequestBehavior.AllowGet);
}