C# 路由问题(.NET不是MVC)
我正在我的.net网站中使用路由 我想要这个网址C# 路由问题(.NET不是MVC),c#,asp.net,.net,.net-4.0,routing,C#,Asp.net,.net,.net 4.0,Routing,我正在我的.net网站中使用路由 我想要这个网址 http://www.website.com/condos/rent/{state}/{area} 转到http://www.website.com/condos.aspx然后选择州和地区 这很好: routes.MapPageRoute("CondosForRentInArea", "condos/rent/{state}/ {area}", "~/condos.aspx"); 但是我在使用Javascript时遇到了一些问题。因为我不会写:
http://www.website.com/condos/rent/{state}/{area}
转到http://www.website.com/condos.aspx
然后选择州和地区
这很好:
routes.MapPageRoute("CondosForRentInArea", "condos/rent/{state}/
{area}", "~/condos.aspx");
但是我在使用Javascript时遇到了一些问题。因为我不会写:
routes.MapPageRoute("StateAreaJS", "condos/rent/{state}/{area}/scripts/
{filename}.js", "~/scripts/{filename}.js");
我在Stackoverflow上发现了另一个问题:
但是我在这个网站上没有使用MVC。我试过这个:
routes.Add("CondosRentStateAreaJS", new Route("condos/rent/{state}/{area}/scripts/
{filename}.js", new StateAreaJSRouteHandler()));
以及:
我不认为该代码被调用,因为在“stringfilename…”行中放置一个断点永远不会命中
奇怪的是,CSS在那里,服务器在文件夹/文件名之前插入../../../../,但是JS丢失了
那么,如何正确地将/state/area/scripts/file.js设置为“~/scripts/file.js”
---------------编辑---------------
你肯定让我走对了路。我应该通过代码隐藏添加脚本和样式表。我最终得到了这样一个很好的解决方案:
HtmlGenericControl validatejs = new HtmlGenericControl("script");
validatejs.Attributes.Add("type", "text/javascript");
validatejs.Attributes.Add("src", ResolveUrl("~/scripts/validate.js"));
this.Page.Header.Controls.Add(validatejs);
HtmlLink fontscss = new HtmlLink();
fontscss.Href = "~/styles/fonts.css";
fontscss.Attributes.Add("rel", "stylesheet");
fontscss.Attributes.Add("type", "text/css");
this.Page.Header.Controls.Add(fontscss);
我只想补充一点(对于其他谷歌用户来说),这种方法使我能够删除我的JS和CSS自定义路由句柄,使整个项目更有条理,可能更快。你能把脚本引用放在母版页中吗?这样,它将可用,并使它更容易 您也可以将引用放在正在使用的页面上,或者按照Ashok的建议在母版页上使用下面的代码。在前面,使用文字,在后面的代码中执行此操作(显然要更改您的姓名):
litJquery.Text=”“;
祝你好运
HtmlGenericControl validatejs = new HtmlGenericControl("script");
validatejs.Attributes.Add("type", "text/javascript");
validatejs.Attributes.Add("src", ResolveUrl("~/scripts/validate.js"));
this.Page.Header.Controls.Add(validatejs);
HtmlLink fontscss = new HtmlLink();
fontscss.Href = "~/styles/fonts.css";
fontscss.Attributes.Add("rel", "stylesheet");
fontscss.Attributes.Add("type", "text/css");
this.Page.Header.Controls.Add(fontscss);
litJquery.Text = "<script type=\"text/javascript\" src=\"" + Page.ResolveClientUrl("~/js/jquery-1.6.min.js") + "\"></script>";