我正在研究AngularJS
,我怀疑我们如何提交表格以及我们的期望。
我想要的是,当我提交表格时,我会被重定向到另一个视图。
因此,在Angular中使用$http
,我将一些数据发布到我的MVC控制器中存在的方法Bills_Angular
中,因此,如果此方法返回一个视图,我希望我能够被重定向到相应的View,在Firebug中,此请求存在并返回页面,但不会显示给我的页面。
角度控制器
var myModule= angular.module('myModule', ['ngRoute']);
myModule.controller("newBillsToPayController", function ($scope, $http, $location) {
// Handle Button 'Finish' click
$scope.btnFinish = function () {
$http({
method: "POST",
url: "Bills_Angular",
data: {
Fornecedor: $scope.fornecedor
},
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}).success(function (data) {
$location.path("/Bills_Angular");
}).error(function () {
alert("Error");
});
};
});
表格
<form method="post" name="formulary">
<div class="panel-body ng-scope" ng-controller="newBillsToPayController">
<newbillstopay></newbillstopay>
<div class="col-md-11" style="margin-bottom: 20px;">
<button ng-click="btnFinish()" class="btn btn-success" id="btnFinish" style="box-shadow: none; float: right;"><span class="glyphicon glyphicon-ok"></span> Finish</button>
</div>
</div>
</form>
ASP.NET MVC控制器
public ActionResult Bills_Angular(Models.NewBills model)
{
return View(model);
}
这是我在Firebug中看到的(名称不同,因为我翻译了我的问题以便更容易理解)
更新
'ngRoute'
添加到我的模块,并将angular-route.js
脚本与我的视图相关联。 success
中,我放置了$ location并调用了我的视图。答案 0 :(得分:1)
因为您对服务器进行ajax调用,所以无法在服务器端重定向必须在客户端进行
使用$ location.path(&#34; / route&#34;);
var myModule = angular.module('myModule', [ngRoute]);
myModule.controller("newBillsToPayController", function ($scope, $http, $location) {
// Handle Button 'Finish' click
$scope.btnFinish = function () {
$http({
method: "POST",
url: "Bills_Angular",
data: {
Fornecedor: $scope.fornecedor
},
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}).success(function (data) {
//to change the angular view use $location t0 redirect
$location.path("/route-where-you-want-to-go");
//to redirect to page outside current angular app use 'window.location':
//window.location = "/path-where-you-want-to-go
}).error(function () {
alert("Error");
});
};
});