asp.net-mvc如何使用角范围变量到 @string。Concat () 的 MVC cshtml 页

发布时间: 2016/10/9 3:33:41
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我想要在锚标记吴单击角范围变量用作参数 [该参数应使用 @string。Concat] 像下面的 cshtml 页面中。

              <a href="#" 
  ng-click="GetName('@string.Concat("Selected name:",name)')"> {{name}} </a>

var personApp = angular.module('personApp', []);
personApp.controller('personController', ['$scope', function ($scope) {
    $scope.GetName = function(name){
      alert(name);
    }
}]);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<html>
<body ng-app="personApp">
    <h1>Scope</h1>
    <div  ng-controller="personController" ng-init="names=['John Doe', 'Mary Jane', 'Bob Parker']">
        <ul>
            <li ng-repeat="name in names">
              <a href="#" 
  ng-click="GetName('@string.Concat("Selected name:",name)')"> {{name}} </a>
            </li>
        </ul>
    </div>

</body>
</html>

解决方法 1:

@string.Concat是 C# 代码和Razor试图呈现页面时,它获取服务器上执行。那时候你角的代码/变量不是甚至可用 !Razor会将它的 (在 C# 代码执行在视图中) 的输出发送到浏览器,这是普通的 html 标记。然后只有你角的代码会被执行。所以你不能混合使用客户端侧 js 变量对 c# 代码那样。

你可以做的最好就是简单地通过 name 是你客户端侧 js 变量的变量。

<li ng-repeat="name in names">
    <a href="#" ng-click="GetName(name)"> {{name}} </a>
</li>
官方微信
官方QQ群
31647020