PartialView无法完全进入IE8

时间:2012-07-20 07:36:15

标签: jquery asp.net-mvc-3 razor

我有这个PartialVIew:

@model IEnumerable<Tungsten.Models.ProductGroup>
<div id="treeviewpglist" class="filetree">
    <ul id="tree" class="treeview">
        <li><span class="folder"><a href="#" onclick="return false;" class="treenode"><input type="hidden" value="12">Name</a></span></li>
    </ul>
    <input type="hidden" value="0" id="pgID">
</div>

我在这个代码的视图中加载它:

$.get('@Url.Action( "GroupList" , "Product" )', function (data) { $('#treeviewdiv div').replaceWith(data); }).success(function ()
{
    // do something
});

它在chrome,Firefox和IE9中运行良好。但在IE8或IE9兼容性视图中 代码doenst完全加载,其负载类似于

<div id="treeviewdiv">
    <a class="treenode selected" onclick="return false;" href="#">
        <input value=12 type=hidden>Name
    </a>
    <input id=pgID type=hidden> 
</div>

我该如何解决?

$('#treeviewdiv div').load('@Url.Action( "GroupList" , "Product" )', function ()
{
    $('#treeviewdiv .treenode').click(function ()
    {
        $('#treeviewdiv .treenode').removeClass('selected');
        $(this).addClass('selected');
        $('#pgID').val($(this).children(':hidden').val());
        LoadProduct();
    });
});

在IE8或IE9兼容性中查看 $(this).children(':hidden')。val()未定义

1 个答案:

答案 0 :(得分:1)

你得到的部分视图的旧版本是什么?

IE缓存GET请求。绕过此方法的是添加当前刻度的额外查询字符串参数或随机数,以使该URL唯一。

或者,您可以从使用$.get方法切换到使用$.ajax并设置cache:false,这会做同样的事情

示例

var url = '@Url.Action( "GroupList" , "Product" )';
var queryString = '?timespan=' + new Date().getTime();
$.get(url + queryString , 
    function (data) { $('#treeviewdiv div').replaceWith(data); 
});