首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ResolveUrl with variable获取“字符文字中字符太多”错误

ResolveUrl with variable获取“字符文字中字符太多”错误
EN

Stack Overflow用户
提问于 2013-01-30 23:15:42
回答 2查看 1.4K关注 0票数 0

我见过的所有使用ResolveUrl的示例都有一个文字路径,如下所示:

代码语言:javascript
复制
window.location='<%= ResolveUrl("~/Account/Login.aspx") %>'

然而,我已经解析了我希望从Infragistics的菜单上下文重定向到的WebDataMenu,并且我正在尝试将该变量传递给ResolveUrl。我使用的函数如下:

代码语言:javascript
复制
    function menuMain_ItemSelected(sender, e) {
        var menuContext = e._context.adr;
        var intPartOfMenuContext = parseInt(menuContext);
        if (menuContext !== intPartOfMenuContext.toString()) {
            var selectedURL = e._props[2]._element.childNodes[0].href;
            window.location = '<%= ResolveUrl(' + selectedURL + ') %>';
        } 
    }

问题是我在ResolveUrl行上得到了一个“字符文字中有太多字符”的错误。

下面是selectedURL的一个例子:

代码语言:javascript
复制
"http://localhost:52168/ITRequest/Person.aspx?MenuTitle=Users"

仅供参考:最终,我要做的是让WebDataMenu工作,让用户点击它打开菜单,然后再次点击以选择并重定向到所选页面。但是,很明显,如果ActivateOnHover=为“False”(我需要这样做),则该控件只有在菜单打开后才会对向下箭头并按Enter键作出响应。所以,如果我漏掉了一些更明显的东西,我会洗耳恭听。

谢谢,丹

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-22 00:00:37

显然,这是一个走得太远的案例。我找到的解决方案是简单地将ResolveUrl从代码行中完全删除,只留下下面的代码行,这对我很有效。

代码语言:javascript
复制
window.location = selectedURL;
票数 0
EN

Stack Overflow用户

发布于 2013-10-09 05:09:17

我知道这很古老,但是为了更好的参考,下面是你如何正确地完成你想要做的事情:

代码语言:javascript
复制
function menuMain_ItemSelected(sender, e){
    var selectedURL = /*Your code goes here*/;
    window.location.href = ResolveUrl(selectedURL);
}

function ResolveUrl(url) {
    var baseUrl = '<%= ResolveUrl("~/") %>';
    if (url.indexOf("~/") == 0) {
        url = baseUrl + url.substring(2);
    }
    return url;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14607292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档