0

我有这个 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-Compatibility View 中,代码确实被完全加载,并且它的加载是这样的

<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()未定义

4

1 回答 1

0

你得到的是旧版本的局部视图吗?

IE 缓存 GET 请求。解决此问题的一种方法是添加当前刻度的额外查询字符串参数或随机数,以使 url 唯一。

或者,您可以从 using the $.getmethod 切换到 using$.ajax和 setting cache:false,它做同样的事情

例子

var url = '@Url.Action( "GroupList" , "Product" )';
var queryString = '?timespan=' + new Date().getTime();
$.get(url + queryString , 
    function (data) { $('#treeviewdiv div').replaceWith(data); 
});
于 2012-07-20T07:42:49.853 回答