Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法将字符串的简单列表数组绑定到ListView_C#_Javascript_.net_Asp.net Mvc_Kendo Ui - Fatal编程技术网

C# 无法将字符串的简单列表数组绑定到ListView

C# 无法将字符串的简单列表数组绑定到ListView,c#,javascript,.net,asp.net-mvc,kendo-ui,C#,Javascript,.net,Asp.net Mvc,Kendo Ui,我现在正试图找出肯杜伊。我使用的是2012.1.322版 我有一个简单的字符串数组List,通过AJAX调用以web方法返回给用户 [“姓名”、“电话”、“地址”、“邮政编码”] 当ListView绑定列表为空时,我只得到 我很确定这与我的模板错误有关。我必须设置什么来代替${Object},才能使其呈现如下效果: <ul id="fileAlist" data-role="listview" class="k-widget k-listview"> <li>nam

我现在正试图找出肯杜伊。我使用的是2012.1.322版

我有一个简单的字符串数组
List
,通过AJAX调用以web方法返回给用户

[“姓名”、“电话”、“地址”、“邮政编码”]

当ListView绑定列表为空时,我只得到

    我很确定这与我的模板错误有关。我必须设置什么来代替
    ${Object}
    ,才能使其呈现如下效果:

    <ul id="fileAlist" data-role="listview" class="k-widget k-listview">
      <li>name</li>
      <li>phone</li>
      <li>address</li>
      <li>zip</li>
    </ul>
    
    • 名字
    • 电话
    • 地址
    • 拉链
    以下是当前代码:

     $(document).ready(function () {
         $("#fileAlist").kendoListView({
             template: "<li>${Object}</li>",
             dataSource:
                 new kendo.data.DataSource({
                     transport: {
                         read: {
                             url: '@Url.Action("GetColumnNames", new {File="A"})',
                             dataType: "json",
                             type: "POST",
                             contentType: "application/json; charset=utf-8"
                         }
                     }
                 })
         });
     });
    
    $(文档).ready(函数(){
    $(“#文件列表”).kendoListView({
    模板:“
  • ${Object}
  • ”, 数据源: 新建kendo.data.DataSource({ 运输:{ 阅读:{ url:'@url.Action(“GetColumnNames”,new{File=“A”}), 数据类型:“json”, 类型:“POST”, contentType:“应用程序/json;字符集=utf-8” } } }) }); });
    C#代码(如果您感兴趣)

    [HttpGet]
    公共JsonResult GetColumnNames(字符串文件)
    {
    如果(文件==“A”)
    {
    var columns=新列表()
    {
    “姓名”,
    “电话”,
    “地址”,
    “拉链”
    };
    }
    返回新的JsonResult{Data=columns,JsonRequestBehavior=JsonRequestBehavior.AllowGet};
    }
    
    其他尝试失败 以下是我尝试过的一些模板想法和得到的结果。显然,他们都没有给我想要的字符串输出

    • 我尝试将模板更改为
      模板:“
    • ${}
    • ,渲染时得到
    • 未定义的
    • 我尝试将tempalte更改为
      模板:“
    • $.val()
    • ,渲染时得到
    • $.val()
    • 我尝试将tempalte更改为
      模板:“
    • ${}.selector
    • ,渲染时得到
    • 未定义的.selector

    代码中存在多个配置问题。我已经对代码进行了一些简化,以集中于一个工作示例

    模型类:

    public class Contact
    {
        public int ContactId { get; set; }
        public string Name { get; set; }
        public string Phone { get; set; }
        public string Address { get; set; }
        public string Zip { get; set; }
    }
    
    查看标记时,您需要使用列表布局以获得所需的外观:

    <ul>
        <div id="contactList" style="width: 400px;"></div>
    </ul>
    

    我得到了你的例子,如果我在你的例子中使用了像Contact这样的对象,我就能让它工作我要求的是如何让它与字符串一起工作
    List()List=newlist()
    @lgorrious我已经包含了返回字符串列表的控制器方法,希望能有所帮助。我确实将其更改为返回
    json
    ,因为它本来应该是这样的。我曾将其更改为与剑道网站上的一个示例相匹配,但在发布之前忘了将其更改回去。@马克:这确实有帮助,请看我修改后的答案。如果只返回一个字符串列表,则返回一个有效的json键+值对字符串时会遇到问题。因此,我添加了另一个字典集合,以避免必须有一个具体的类?没有办法只使用字符串列表。那是个好主意bummer@Mark以下是格式摘要。序列化字符串列表的问题是,将引号添加到整个数组元素中,使其成为无效的键+值对。当前,控制器仅返回字符串数组
    [“Name”、“Phone”、“Address”、“Zip”]
    ,这些字符串不是剑道数据源所期望的键+值对javascript对象。
    <ul>
        <div id="contactList" style="width: 400px;"></div>
    </ul>
    
    <script id="template" type="text/x-kendo-tmpl">
        <li>${ Name} ${ Phone } ${ Address } ${ Zip }</li>
    </script>
    
    <script type="text/javascript" >
        $(document).ready(function () {
            var datasource = new kendo.data.DataSource({
                transport: {
                            read: {
                              url: "@(Url.Action("GetContacts", "Home"))",
                              dataType: "json",  //switched to json instead of jsonp for this example
                              contentType: "application/json; charset=utf-8",
                              type: "GET"
                           }
               }
           });
    
           $("#contactList").kendoListView({
              dataSource: datasource,
              template: kendo.template($("#template").html())  //Link the template to the list view control
           });
       });
    
    public ActionResult GetContacts()
    {
        List<Contact> list = new List<Contact>();
        Contact contact = new Contact() { ContactId = 0, Name = "Steve", Address = "Some Street", Phone = "1-345-345-3455", Zip = "334566" };
        list.Add(contact);
        contact = new Contact() { ContactId = 1, Name = "Jim", Address = "Another Street", Phone = "1-777-987-3889", Zip = "998754" };
        list.Add(contact);
    
        return Json(list, JsonRequestBehavior.AllowGet);
    }
    
    public ActionResult GetContacts()
    {
        var columns = new List<Dictionary<string, object>>() {
            new Dictionary<string,object>(){ {"Name", "Rex"}, {"Phone", "1-123-123-2342"}, {"Address", "Westwood Drive"}, {"Zip", 928347}},
            new Dictionary<string,object>(){ {"Name", "Smith"}, {"Phone", "1-333-444-5555"}, {"Address", "Allen Way"}, {"Zip", 23456}}
        };
    
        return Json(columns, JsonRequestBehavior.AllowGet);
    }