【问题标题】:MVC routing w/ AngularJS model binding how to get parameters带有AngularJS模型绑定的MVC路由如何获取参数
【发布时间】:2015-12-04 09:24:18
【问题描述】:

我的应用使用 MVC 进行非常简单的路由。我有提供视图的控制器,这就是他们所做的一切(MVC 控制器中没有代码)。我希望每个页面都充当迷你 SPA。所以每个视图都以一个 ng-controller 指令开始。在角度控制器中,我与 WebAPI 交互以加载模型并处理其他客户端行为。当我转到 /product/3 之类的页面时,我希望 angularJS 控制器知道我需要产品 ID 3。但是,由于我没有使用 angularJS 进行路由,所以我不能使用 $routeParams 或 $stateParams。我考虑绑定到一个简单的 IdViewModel,它只包含从 MVC 控制器填充的 Id。但是,在 angularJS 控制器中,这似乎总是未定义的,因此模型绑定以另一种方式工作。

@model TripPayWeb.SPA.ViewModel.IdViewModel
@{
    ViewBag.Title = "Product Details";
}

<div ng-controller="productDetailsCtrl">
    <input type="hidden" ng-data="id" value="@Model.Id" />
</div>

获取 ID 以便加载模型的最佳方法是什么?

【问题讨论】:

    标签: asp.net-mvc angularjs


    【解决方案1】:

    在 angularjs 控制器中,这可用于获取 URL 的最后一段。

        var url = $window.location.href;
        var bits = url.split('/');
        var id = bits[bits.length - 1];
    

    【讨论】:

      【解决方案2】:

      我需要类似的东西(查看我的帖子here)。我也不想使用控制器和视图来提供静态页面。因此,正如您从我的回答中看到的那样,我创建了自己的 ASP.NET 5 中间件以用于 Angular。

      中间件可通过 Nuget 获得。另外,您可以在 GitHub 上查看有关如何使用中间件的信息:https://github.com/a11smiles/AngularMiddleware

      【讨论】:

        猜你喜欢
        • 2016-10-02
        • 2018-10-07
        • 2014-10-13
        • 1970-01-01
        • 2023-04-02
        • 2015-12-08
        • 2017-01-10
        • 2014-08-06
        • 2017-02-10
        相关资源
        最近更新 更多