Javascript 将布尔值从c#传递到角度视图
以下是我的简单代码: c# 角度控制器Javascript 将布尔值从c#传递到角度视图,javascript,c#,angularjs,Javascript,C#,Angularjs,以下是我的简单代码: c# 角度控制器 <script> var myApp = angular.module('myApp', []); myApp.value('allowed', <%= isAllowed %>);//myApp.value('allowed', False); myApp.controller('TestController', ['$scope', function ($scope, allowed) { $scope.res
<script>
var myApp = angular.module('myApp', []);
myApp.value('allowed', <%= isAllowed %>);//myApp.value('allowed', False);
myApp.controller('TestController', ['$scope', function ($scope, allowed) {
$scope.result = allowed;
}]);
</script>
var myApp=angular.module('myApp',[]);
myApp.value('允许',)//myApp.value('allowed',False);
myApp.controller('TestController',['$scope',函数($scope,允许){
$scope.result=允许;
}]);
看法
{{result}}
我以未捕获引用错误:未定义False 及 myApp.value('allowed',False) 如何将布尔值传递给$scope.result?试试以下方法:
myApp.value('allowed', <%= isAllowed.ToString().ToLower() %>);
myApp.value('allowed',);
ASP.NET MVC默认情况下,在返回模型值以查看时,将值true
转换为true
,false
转换为false
在这种情况下,您的值False
被视为JavaScript变量,这就是为什么您得到Uncaught ReferenceError:False没有定义(bool值应该是true
/False
)
所以基本上你可以通过如下的操作把它转换成bool
myApp.value('allowed', <%= isAllowed == 'True' %>);
javascript区分大小写,不存在False
。。。这是错误的,你想做什么被认为是不好的做法。。如果您需要将信息从c#传递到客户端/angularjs。考虑通过C*API控制器制作一个API端点。然后通过angularjs使用服务,点击api端点以获取信息。您的编码方式将前端和后端代码结合在一起,通常是避免的。C#/ASP.NET是MVC,Angular是MVVM,通常您只需要C#是API控制器,它将使字符串成为'true'
/'false'
,这将不是一个布尔值。提示OP这不是一个好的实践,将后端代码与前端代码混合,同时将MVC与MVVM和MPA与SPA架构混合,这是没有用的?@Michail我完全同意这一点。但是这种情况出现在,应用程序的一小部分被迁移到angular页面。但是,通过保持所有其他模块功能的同步,使模块的一小部分具有不同的堆栈变得非常具有挑战性。。若OP正在转换应用程序的整个页面,那个么我们不应该采用这种方法。
myApp.value('allowed', <%= isAllowed.ToString().ToLower() %>);
myApp.value('allowed', <%= isAllowed == 'True' %>);
//dependency added here VVVVVVVVVV
myApp.controller('TestController', ['$scope', 'allowed', function ($scope, allowed) {