我现在将详细解释这个问题。我必须使用控制器中的$ http方法将一些参数或对象传递给MVC Action方法三。但是当我点击Route Three链接时,Home Controller中的三个操作方法调用两次首先是templateUrl,然后是控制器的$ http方法。我想先调用控制器然后加载视图(templateUrl)。请让我知道解决方案
角色代码:
app.controller('routeparamtest', function($scope, $routeParams,$http) {
$http({
url: "/Home/three",
method: "GET",
params: { id:20}
});
});
var configFunction = function ($routeProvider) {
$routeProvider.
.when('/routeThree', {
templateUrl: 'Home/Three',
controller: 'routeparamtest'
});
}
MVC控制器代码:
public class HomeController : Controller
{
public ActionResult Three(int id = 1)
{
return View();
}
}
HTML代码:
<ul>
<li><a href="#/routeThree" > Route Three</a></li>
</ul> <div ng-view>
Three.cshtml代码:
some html code goes here
答案 0 :(得分:0)
如果要传递多个参数,则只需创建如下对象即可。
var data = [{
Id: "1",
Value: "apple"
},
{
Id: "2",
Value: "banana"
}];
并将其传递给anuglarjs,如下所示。
this.doSth = function(data){
var response = $http({
method: "post",
url: "Home/DoSth",
data: data
//or data: JSON.stringify(data) ??
});
return response;
};
在MVC Controller中获取数据只需创建一个类
public class MyClass
{
public int Id { get; set;}
public string Value { get; set;}
}
使用方法中的列表
public string DoSth(List<MyClass> data)
{
//access your data
//data[0].Id,data[0].Value or by any other way
}
希望这会对你有所帮助。 感谢