Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 处理.NETMVC中需要访问作用域的布局的正确方法_Asp.net Mvc_Angularjs - Fatal编程技术网

Asp.net mvc 处理.NETMVC中需要访问作用域的布局的正确方法

Asp.net mvc 处理.NETMVC中需要访问作用域的布局的正确方法,asp.net-mvc,angularjs,Asp.net Mvc,Angularjs,我在现有的.NETMVC应用程序中使用angular。我们所有的.cshtml视图都基于一个部分_Layout.cshtml。我们在这个布局中生成了一个左侧边栏。根据web路由,左侧栏中的内容将发生变化 问题是在某一点上,我需要从$scope获取信息并将其放入_布局中的侧栏中。我知道的唯一方法是进入布局,并用ng应用程序包装它。大概是这样的: _布局: @(ViewBag.HotList != null ? " ng-app=hotListApp" : "") if (ViewBag.Hotl

我在现有的.NETMVC应用程序中使用angular。我们所有的.cshtml视图都基于一个部分_Layout.cshtml。我们在这个布局中生成了一个左侧边栏。根据web路由,左侧栏中的内容将发生变化

问题是在某一点上,我需要从$scope获取信息并将其放入_布局中的侧栏中。我知道的唯一方法是进入布局,并用ng应用程序包装它。大概是这样的:

_布局:

@(ViewBag.HotList != null ? " ng-app=hotListApp" : "")

if (ViewBag.Hotlist != null)
{

    <ul ng-controller="someCtrl" id="hotlist" class="hotlist">

    </ul>
}
@RenderBody()
@(ViewBag.HotList!=null?“ng app=hotListApp”:“
如果(ViewBag.Hotlist!=null)
{
} @RenderBody()

但这太乱了,我有很多页。我将不得不为我的大多数页面做这个ng应用程序决策。有没有更好的方法来区分这一点?其他人是如何解决这个问题的?

我们将ng应用程序置于body tag级别:

<body id="ng-app" ng-app="app">

通过这种方式,您可以与任何UI元素进行交互,无论它们位于何处。你可能想考虑把你的列表变成一个角度指令。然后,您可以将属性放在指令上,以便在侧边栏的控制器中与之交互。您可能看起来像:

<div ng-controller="sidebarController"
    <HotList data="myData" />
</div>

你得忍受我,我对angularjs一无所知。听起来您希望布局能够理解javascript($scope)中的某些内容,而在将视图呈现给客户端时,这是不可能的。什么是hotListApp?这是控制器还是视图(操作/方法)?我们将使用您提供的相同解决方案。这似乎是最好的做法。