我試圖實現URL路由到我的Web應用程序。
當我實現這個頁面沒有QueryStrings
,它工作正常。使用URL路由與查詢字符串參數導致錯誤加載所有.png/.jpg圖像在ASP.NET 4.0
但是,當我嘗試實現相同的網頁使用querystrings其給予Jscript運行時錯誤。和圖像沒有發現
所以對於JS我解決這樣在我的Ajax調用使用ResolveClientUrl
<script src='<%=ResolveClientUrl("~/raphl_map/raphael-min.js") %>' type="text/javascript"></script>
現在我動態生成相應的urlpath img標籤和麪臨的問題對那些動態影像,
Ajax的成功響應我使用for循環將li元素
var elAdd = "<li class=" + id_setClass + " > <img src="+photo_src+"/></li>";
$("#ul_itemlist").append(elAdd);
的Global.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()));
動態生成的圖像還是文件系統中的文件?對於後面的一個,你可以告訴IIS處理該請求並直接返回文件。也許還可以看看這個:http://haacked.com/archive/2008/07/14/make-routing-ignore-requests-for-a-file-extension.aspx/ – ChrFin
@chrfin:所有的圖像都是存儲在文件夾名稱爲'Images'和路徑保存在數據庫中,所以在Ajax調用我從數據庫中獲取imgpath並綁定到我動態生成的img標籤,因爲我更新了我的問題 –