使用带有querystring参数的URL路由会导致在ASP.NET 4.0中加载所有.png/.jpg图像时出错
本文关键字:加载 png 出错 图像 jpg NET 参数 querystring URL 路由 ASP | 更新日期: 2023-09-27 17:59:16
我正在尝试实现URL路由到我的web应用程序
当我在一个没有QueryStrings
的页面上实现这一点时,它工作得很好。
但是,当我试图为使用查询字符串的网页实现同样的功能时,它会产生Jscript运行时错误。和未找到的图像
因此,对于JS,我使用ResolveClientUrl
解决了这个问题
<script src='<%=ResolveClientUrl("~/raphl_map/raphael-min.js") %>' type="text/javascript"></script>
现在,在我的Ajax调用中,我正在动态生成具有相应urlpath的img标签,并面临这些动态图像的问题,
关于ajax成功响应am使用for循环添加li元素
var elAdd = "<li class=" + id_setClass + " > <img src="+photo_src+"/></li>";
$("#ul_itemlist").append(elAdd);
全球.asax
void RegisterRoutes(RouteCollection routes)
{
// routes.Ignore("{file}.png");
// routes.IgnoreRoute("{file}.png");
// routes.Ignore("{*alljpg}", new { alljpg = @".*'.jpe?g" });
// routes.Ignore("{*allpng}", new { allpng = @".*'.png(/.*)?" });
routes.Add(new Route(@".*'.png", new StopRoutingHandler()));
routes.RouteExistingFiles = false;
routes.MapPageRoute("Home", "Home", "~/homepage.aspx");
routes.MapPageRoute("Login", "Login", "~/Login.aspx");
routes.MapPageRoute("Profile", "Profile/{user_id}", "~/MyProfile.aspx");
}
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
我尝试过但对我不起作用的东西是
routes.Ignore("{*allpng}", new { allpng = @".*'.png(/.*)?" });
routes.Add(new Route(@".*'.png", new StopRoutingHandler()));
我认为以下应该有效:
routes.IgnoreRoute("{*png}", new { png = @"(.*/)?.*'.png(/.*)?"});
这应该排除包含.png
的路由(在任何目录中——这是你忘记IMO的地方)。