如何将MVC模型数据与Angular JS模型链接

时间:2014-09-03 09:18:37

标签: javascript asp.net-mvc angularjs razor

我正在使用MVC Razor View和AngularJS。

我在控制器中创建UserMaster对象并传递给视图

Function AddNewUser() As ActionResult
       Dim objUser As New UserMaster()
        Return View("UserMaster", objUserMaster)
End Function

在视图中,通过使用HTML帮助程序类,将创建文本框和验证控件

@<div ng-app ng-controller="UserController">
    @Html.EditorFor(Function(model) model.UserName)
    @Html.ValidationMessageFor(Function(model) model.UserName)

在客户端使用以下语句创建AngularJS模型

    <script type="text/javascript">
           function UserController($scope, $http) {
           $scope.UserData = @Html.Raw(Json.Encode(Model));
           }
    </script>

服务器端验证(我在UserMaster类中编写)在客户端工作正常,剃刀引擎通过生成客户端验证脚本自动执行此操作。

提交后,我会自动在服务器端获得蓬勃发展的模型。

但是我无法使用AngularJS(通过使用$ scope.UserData.UserName)在客户端操作/获取模型数据。我想在用户使用angular JS修改文本框时访问UserName值。如何?

1 个答案:

答案 0 :(得分:2)

可以通过在MVC-5中使用htmlAttributes来实现

@Html.EditorFor(Function(model) model.UserName, New With {Key .htmlAttributes = New With {Key .ng_model = "model.UserName"}})

我们必须使用 ng-model ng-model ,MVC将在运行时呈现为 ng-model