在我的网站上,每个页面都有在代码隐藏中创建的链接,其中链接是当前URL,其中一个查询参数已更改。为此,我一直在使用这种方法(这个具体的例子是用于分页):
var queryValues = HttpUtility.ParseQueryString(HttpContext.Current.Request.QueryString.ToString());
queryValues.Set("page", num);
string url = HttpContext.Current.Request.Url.AbsolutePath;
string updatedQueryString = "?" + queryValues.ToString();
string newUrl = url + updatedQueryString;
return newUrl;
这对我当地的版本很好。但是,当我在Ektron中创建每个页面并添加手动别名时,生成的URL仍然会转到解决方案中的文件位置。例如,我的原始页面是/WebAssets/Templates/EventListView.aspx。我在Ektron中创建了/ Alumni / Events / List页面。我可以去/ Alumni / Events / List,但是当我点击页面按钮时,加载的页面是/WebAssets/Templates/EventListView.aspx?page=2而不是/ Alumni / Events / List /?page = 2
答案 0 :(得分:0)
我找到了一个解决方案:
var rawUrl = HttpContext.Current.Request.RawUrl;
var url = rawUrl.Split('?')[0];
string newUrl = url + updatedQueryString;
答案 1 :(得分:0)
使用/ Alumni / Events / List的主要内容块的QuickLink
属性,这将是您想要用于页面链接或重定向到同一页面的别名。如果您已经在代码中的某个位置加载了ContentData,那么这可能是ContentData.QuickLink
。
注意:
别名可能会默认删除您的“页面”查询字符串参数,以解决此问题,在工作区中编辑您的别名,使其具有“追加”的“查询字符串操作”。
如果在前端使用它,请确保预先向QuickLink值预先提供“/”(如果它不是绝对值,而不是已经预先添加),否则您的链接将带您到/ Alumni / Events / List /校友/活动/列表?页面= 2,这是不好的。