在JS文件中访问ViewModel(asp.net MVC)

时间:2014-05-14 21:38:17

标签: javascript asp.net-mvc viewmodel

我一直在Razor中使用这样的东西

@section Includes {  
      <script type="text/javascript">
        var somestuffneeded = @(Html.Raw(Json.Encode(Model.datamember))); 


      </script>

}

但这看起来并不那么干净,因为它与布局位于同一个文件中(因为它不能直接从.js文件中运行)。 访问和查看ViewModel的任何干净的替代方法是在.js文件中传递的吗?

1 个答案:

答案 0 :(得分:1)

您无法直接访问.js文件中的ViewModel,因为它是Web服务器上的静态文件。但是有一种解决方法,您可以使用参数将ViewModel传递给.js文件。

一些.js文件

function Common() {
    var _this = this;

    this.viewModel = null;

    this.showViewModel = function () {
       alert(_this.viewModel);
    };
}

var common = null;
$().ready(function () {
    common = new Common();
});

然后在View加载时传递ViewModel

@section Includes {  
  <script type="text/javascript">
    var somestuffneeded = @(Html.Raw(Json.Encode(Model.datamember))); 
    $(document).ready(function () {
          common.viewModel = somestuffneeded;
          common.showViewModel();
    });
  </script>
}