【问题标题】:MVC View not refreshed after menu click (angularjs is being used)单击菜单后未刷新 MVC 视图(正在使用 angularjs)
【发布时间】:2017-01-03 07:24:21
【问题描述】:

我有一个 MVC 站点,其中一些页面使用 angular 筒仓模式。

如果我导航到非角度页面路由可以很好地将我带到控制器然后查看。但是,一旦在该页面上,如果我再次单击相同的菜单项,我就不会像以前那样路由到控制器方法,没有任何反应。

我不知道这是否是默认行为,我没有注意到缓存问题,或者使用 Angular 是否改变了某些东西。

有没有人遇到过这个问题,如何让第二次点击菜单路由到控制器

public ActionResult Dashboard()
{
  return View();
}

<li>
<a href="/Monitoring/Dashboard" id="MonitoringSubmenu" target="">Monitoring</a>
</li>

【问题讨论】:

  • 你能发布你的代码吗?
  • 你想要什么代码(控制器、布局视图、视图、路由配置)我以为提出的问题不需要代码??
  • 我想知道当你点击菜单项时发生了什么。所以菜单的代码会帮助我猜
  • 老兄,它没有什么特别之处,但它被添加了
  • 尝试关闭缓存控制器:$stateProvider.state('stateName', { cache: false, url : '/url', templateUrl : 'template.html' })

标签: .net angularjs asp.net-mvc routing


【解决方案1】:

我相信这是 angular 的默认行为。

不过,有一个解决方法。您可以使用ng-click 更改路由并确保每次都调用控制器方法,即使您在同一页面上:

 <a ng-click="changeRouteToDashboard()" id="MonitoringSubmenu" target="">Monitoring</a>

在你的控制器中:

function changeRouteToDashboard(){
    $location.path('/Monitoring/Dashboard')
}

【讨论】:

    【解决方案2】:

    Jahongir Rahmonov 的回答不正确,因为该页面不是 Angular 页面,但是调用调用控制器的 javascript 函数确实解决了问题,非常感谢下面是代码

    <a onclick="changeRouteToDashboard()" href="" id="MonitoringSubmenu" target="">Monitoring</a>
    
    function changeRouteToDashboard(){
        window.location.href = "/Monitoring/Dashboard"
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-20
      • 2015-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多