zoukankan      html  css  js  c++  java
  • MVC后台数据赋值给前端JS对象

    Controller中的数据,不管是使用的是ViewModel 还是ViewBag.Data,要将他传递到View中,这个很容易,但是如果要将它传递给JS中的某个对象,这个改如何处理呢?

    后台的数据格式:

        public class ViewModel
        {
            public int ID { get; set; }
    
            public string Name { get; set; }
    
            public List<string> Data { get; set; }
        }
    

    Controller 传递到View的数据:

            public ActionResult Index()
            {
                ViewBag.ID = 1;
                ViewBag.Name = "WWW";
                ViewModel viewModel = new ViewModel()
                {
                    ID = 100,
                    Name = "WWW",
                    Data = new List<string> {"A","B","C","D","E" }
                };
                return View(viewModel);
            } 

    前台JS 中的一个对象

        var viewModel = {
            id: 0,
            name: '',
            data:[]
        }
    

      

    1. 如果需要传递整形数字到JS中 

    <script>
            viewModel.id=@ViewBag.ID;
            or
            viewModel.id=@Model.ID;
    </script>
    

    2.  如果需要传递字符串到JS中

    <script>        
            viewModel.name='@ViewBag.Name';
            or
            viewModel.name='@Model.Name';  
    </script>  
    

    3.如果需要传递复杂的数据类型到JS中,如对象,数组,集合等,

    <script>
            viewModel.data = @Html.Raw(Json.Encode(Model.Data));
    </script>
    

    更多方法请参见:http://stackoverflow.com/questions/3850958/pass-array-from-mvc-to-javascript

    另外将JS 中的对象传递到Controller中,这个直接采用Ajax,就可以实现,详细请参见  http://stackoverflow.com/questions/16824773/passing-an-array-of-javascript-classes-to-a-mvc-controller

     

  • 相关阅读:
    Java Varargs 可变参数使用
    GitLab 如何删除 Forked from
    Git Clone 的时候遇到 Filename too long 错误
    Spring Boot 如何部署到 Linux 中的服务
    Gradle 如何打包 Spring Boot 如何不添加版本代码
    HDU 5878---预处理+二分查找
    HDU 5881--Tea 思维规律
    HDU 5879---cure
    (转)C/S 与 B/S 区别
    卡特兰数
  • 原文地址:https://www.cnblogs.com/akwwl/p/5238975.html
Copyright © 2011-2022 走看看