是否有可能在angularjs的发布请求后重定向到另一个视图SecondView()
。我知道角有点像$location.path
。但我想检查控制器中的一些条件。AngularJS发布到控制器并重定向到另一个页面
的JavaScript
var MyApp = angular.module("MyApp", []);
MyApp.controller("AppController", function ($scope,$http) {
$scope.onClick = function() {
$http({
method: 'POST',
url: 'Home/CheckData/',
data: {name: 'Jhon'},
});
};
});
控制器:
public class HomeController : Controller
{
//
// GET: /Home/
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult CheckData(string name)
{
if (name=="Jhon")
{
return RedirectToAction("SecondView");}
else{
return View();
}
}
public ActionResult SecondView()
{
return View();
}
}
Index.cshtml
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<script src="~/Scripts/angular.js"></script>
<script src="~/Scripts/MyScript.js"></script>
<div ng-app="MyApp" ng-controller="AppController">
<input ng-click="onClick()" type="button" value="Redirect" />
</div>
实际上,服务器应该总是响应客户端,为什么不把这个响应解析成有意义的东西(比如url重定向?),请检查@charlietfl的答案。 –
我很确定两个答案都达到了相同的点:让服务器以某种有效负载作出响应,然后基于此负载重定向或执行其他操作。 (为了说明的目的,当我指出哪个控制器应该处理重定向时,我只是添加了Angular这个词 - 当你在同一句话中谈论Web API和Angular时,事情往往会变得模糊不清。) – napo