为什么不会加载一个表在动态模式下兼容使用AJAX MVC3中唯一的工作?(Why does load

2019-09-19 03:47发布

我试图得到一个表中MVC3使用AJAX动态加载。 为什么在兼容模式在IE9这只是工作的? 是否有办法解决它?

视图:

<script src="../../Scripts/jquery-1.5.1.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-ui-1.8.11.js" type="text/javascript"></script>
<script type="text/javascript">

    $.ajax({
        type: 'POST',        
        url: "/Index/GetApplicationsForUserJSON",       
        success: function (data) {
            for (var i = 0; i < data.length; i++) {
                $("#ApplicationsForUser tbody").append("<tr>" +
                            "<td>" + data[i].Application + "</td>" +
                            "<td>" + data[i].Roles + "</td>" +
                        "</tr>");
            }

            $("tr:odd").css({ 'backgroundColor': '#ebf0f5' });            
        }
    });

</script>

        <table id="ApplicationsForUser" class="ui-widget ui-widget-content" style="width: 99%;
            margin: 3px 0px 0px 3px">
            <thead>
                <tr class="ui-widget-header ">
                    <th style="width: 45%">
                        Application
                    </th>
                    <th style="width: 45%">
                        Roles
                    </th>                    
                </tr>
            </thead>
        </table>

控制器:

  public JsonResult GetApplicationsForUserJSON()
        {

            Dictionary<string, string> tableData = new Dictionary<string, string>();
            tableData.Add("row1", "row1data");

            var jsonData = tableData
                          .Select(c => new
                          {
                              Application = c.Key,
                              Roles = c.Value
                          });

            return Json(jsonData, JsonRequestBehavior.AllowGet);

        }

编辑:图片!

Answer 1:

我没有看到你的榜样一个tbody元素。 您的.append()调用选择器包括一个,虽然。 也许在兼容模式下,IE9是“假设”的TBODY作为表的内容存在。



Answer 2:

由于一些浏览器cahce数据,即使大公都不要以为,一些浏览器元素不会在用户刷新request.So您必须强制通过在控制器级别specifyng这样的:

[OutputCache(NoStore = true, Duration = 0)]

这将告诉浏览器不从之前的请求存储请求相关的数据。



文章来源: Why does loading a table dynamically using ajax in MVC3 only work in compatability mode?