在我看来,我有一个带有ng-bind
属性的标签,该标签显示了正确的布尔值:
<span id="ShowFlag" name="ShowFlag" ng-bind="session.view.showFlag"></span>
将表单发布到服务器端后,我希望将此表单绑定到相关模型上的属性。
public bool ShowFlag { get; set; }
但是,这始终返回
false
,而Span标记中显示的值在页面上正确显示为true
。有什么明显的我想念的地方吗? 最佳答案
我认为您缺少AngularJs绑定的工作原理。如果要将服务器中的值转换为角度模型,可以使用Razor将数据转换为JavaScript(最好的位置是Angular控制器中)。
这是我整理的快速样本。
这是来自MVC控制器的代码。在此示例中,我们使用模型数据和ViewBag数据。
public ActionResult Index()
{
dynamic model = new ExpandoObject();
model.ShowFlag = "True";
ViewBag.ShowFlag = "ViewBag True";
return View(model);
}
这是视图的外观,包括引用,Angular,JQuery以及AngularJs应用程序和控制器的代码:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Demo</title>
</head>
<body>
<div>
<h2>Sample For Stack Overflow</h2>
<div ng-app="glennapp">
<div ng-controller="testController">
<input type="text" ng-model="showFlag" />
<input type="text" ng-model="showFlag2" />
<div>
<span ng-bind="showFlag" ></span>
<span ng-bind="showFlag2" ></span>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="//code.angularjs.org/1.4.8/angular.min.js"></script>
<script type="text/javascript">
var mainApp = angular.module('glennapp', ['glennControllers']);
var glennControllers = angular.module('glennControllers', []);
glennControllers.controller('testController', ['$scope', function ($scope) {
$scope.showFlag = '@ViewBag.ShowFlag';
$scope.showFlag2 = '@Model.ShowFlag';
}]);
</script>
</body>
</html>
另一个选择是创建一个MVC操作,该操作返回JsonResult,然后编写一些JavaScript进行Ajax调用并检索数据。
关于c# - 如何通过Angular ng-bind属性使用MVC模型绑定(bind),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34069330/