我正在asp .net 4.0应用程序中实现URL路由。
我有一个超链接,可以使用一些参数重定向到另一个页面。
一切都很好,直到第一页加载,我能够获得值和页面加载好,之后我的页面再次加载,这次我在RouteData.Values中有我的应用程序文件夹名称。
任何人都可以解释这个
在Global asax文件中我的路线如下
RouteTable.Routes.MapPageRoute("CategoryCodesListView", "CategoryCodesListView/{CatRefID}/{HasSubCat}", "~/CategoryList.aspx");
我的重定向页码
HyperLink linkItem = (HyperLink)e.Row.FindControl("linkItem");
RouteValueDictionary parameters =
new RouteValueDictionary
{
{"CatRefID",RefCodeSysID },
{ "HasSubCat",lblHasSubCategory.Text }
};
VirtualPathData vpd = RouteTable.Routes.GetVirtualPath(null, "CategoryCodesListView", parameters);
linkItem.NavigateUrl = vpd.VirtualPath;
我收到的页面代码是 string CatRefID = Convert.ToString(Page.RouteData.Values [“CatRefID”])
假设我通过了
CatRefID="Cat1" and HasSubCat="true";
对于第一页加载我得到相同的值。
但在页面加载后,页面再次加载,现在我的值为
CatRefID="Scripts" and HasSubCat="validations.js";
其中Scripts是我的应用程序中的文件夹名称之一,validations.js是其中的文件。
答案 0 :(得分:0)
您的网页中是否有指向 Scripts 文件夹的链接?如果这样做,您应该更正具有链接的脚本的地址。您应该在Ignore
中使用Global.asax
或为您的链接提供绝对地址或上传您的脚本并将其用作:
<script src="http://yourDomain.com/scripts/jquery-1.10.0.js"></script>