$scope.showDetails = function (dashboard_item) {
$log.debug("clicked");
$http({
url: '/Details/Details',
method: 'GET',
data: { name: dashboard_item.FName }
})
};
这将调用方法,但不会将名称传递给它,并且会返回到角控制器。而不是打开/留在新页面上。
*onclick="location.href='@Url.Action("Details", "Details", new {name = $scope.dashboard_item.Fname })'"
这将正确打开/返回新页面/视图,但是它无法访问Razor/Server端的Angular变量。
似乎没有任何好的示例或任何信息如何做这样简单的事情。我知道我应该使用角路线,但是我不知道如何和老实说我宁愿坚持使用ASP MVC路由,但是此时任何事情都会做。
tldr我想返回/呼叫/打开新的MVC视图,而将参数传递给它
您可以使用类似的东西:
<a ng-href="@Url.Action("Details","Details")?name={{dashboard_item.Fname}}">Link</a>
在您使用此角控制器的剃须刀视图中。
update
要在所有元素上使用它,不仅可以在锚点上,还可以在角控制器中创建此功能:
$scope.go = function ( path ) {
$window.location.href = path;
};
然后在您的视图上您可以使用类似的东西:
<tr ng-click="go('@Url.Action("CompanyProfileDetails","User")?name=' + profile.Name)">
*another code here*
</tr>
,由于剃须刀在服务器端执行不可能从客户端传递新对象,但您可以通过url params
传递。<a href="@Url.Action("Details","Details")?name={{dashboard_item.Fname}}">Your link here </a>