0

我在我的 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 是其中的一个文件。

4

1 回答 1

0

您的页面中有指向Scripts文件夹的链接吗?如果这样做,您应该更正具有链接的脚本的地址。您应该Ignore在您Global.asax的链接中使用或提供绝对地址或上传您的脚本并将它们用作:

<script src="http://yourDomain.com/scripts/jquery-1.10.0.js"></script>
于 2013-08-13T16:34:02.040 回答