我有这个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()未定义
答案 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);
});