如何解决jQuery File Tree始终使用根文件夹作为选定文件夹
我无法使用jQuery File Tree插件显示数据。无论我用什么作为“ root”,它总是使用“ \”并显示C驱动器的内容!
我正在使用aspx(后面没有使用代码)和一个母版页。
<div class="col-md-12" id="divAIMDocs">
</div>
<script>
function openFile(file) {
// do something with file
alert(file);
}
$(document).ready(function () {debugger
$('#divAIMDocs').fileTree({
root: decodeURI(uploadFolder),script: '../assets/vendor/jquery_FileTree/connectors/jqueryFileTree.aspx',expandSpeed: 1000,collapseSpeed: 1000,multiFolder: false
},function(file) {
openFile(file);
});
});
</script>
我在venodr的js文件(如下)和“连接器”脚本中添加了一个断点:
$(this).each( function() {
function showTree(c,t) {debugger <-- this shows 't' as '\'
$(c).addClass('wait');
以及连接器脚本jqueryFileTree.aspx:
string dir;
if(Request.Form["dir"] == null || Request.Form["dir"].Length <= 0) <-- always null
dir = "/";
else
dir = Server.UrlDecode(Request.Form["dir"]);
然后我尝试将“ root”值硬编码为“ D:\ Some \ Folder”:
$(document).ready(function () {debugger
$('#divAIMDocs').fileTree({
root: 'D:\Some\Folder\',...
并且我在函数showTree参数't'中看到的实际上是'D:\ Some \ Folder',但是连接器仍然说Request.Form [“ dir”]为空,并继续显示C驱动器的内容。
我在这里做什么错了?
解决方法
我认为,问题出在Request.Form [“ dir”]。我发现有Static assert in C文章,它指出了我从未想到的问题。这是由于使用了.NET的FriendlyURL功能(即与jQuery File Tree插件无关)。
“此示例中的HTML表单旨在发布到Receiver.aspx,并且友好URL将接收包含文件扩展名的请求,并发出HTTP 301-永久移动响应,指示浏览器进行新的(GET )请求不带文件扩展名的相同资源。”
解决方案是将RoutConfig.cs文件中的以下行注释掉:
public static void RegisterRoutes(RouteCollection routes)
{
var settings = new FriendlyUrlSettings();
//settings.AutoRedirectMode = RedirectMode.Permanent;
routes.EnableFriendlyUrls(settings);
}
原始POST被后续的GET覆盖,并且数据丢失。
仅当通过表单POST加载页面时,才会填充Request.Form。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。