2011-09-02 95 views
0

Report Viewer控件顯然只能在Web窗體頁面中使用(我正在使用MVC 2)。所以,我做了一個,添加我的報告,並嘗試從我的MVC 2網站的一個視圖中鏈接到它。我始終得到錯誤「無法找到資源」。我已經嘗試了所有可能的URL,我可以想到它可以使它起作用。我甚至將一個超鏈接工具拖放到頁面中,並將其設置爲鏈接到所討論的Web窗體並得到相同的結果。如何從MVC 2應用程序顯示Web窗體頁面?

Web窗體位於/ Views/MaintenanceReports文件夾中。我已經嘗試過〜/ Views/MaintenanceReports/DriverList.aspx這樣的網址(有和沒有* .aspx)和其他一些網址。但是,我很確定這應該是網址。

我還添加了此頁路線Global.asax文件,希望它會做一些神奇routes.MapPageRoute("DriverListing", "MaintenanceReports/DriverListing", "~/Views/MaintenanceReports/DriverListing.aspx");

我也嘗試添加,每次我的同胞程序員之一的建議,一個iframe來的MVC視圖該網站將其Web表單作爲其來源。這也給了我同樣的錯誤。

我已經掌握了Pro ASP.NET MVC 2這本書,它並沒有給我任何幫助。它基本上說不應該有問題。

服務器運行IIS 7並安裝了.NET 4框架。

通常情況下,我會花更多時間尋找答案,但目前我非常需要時間。這是我在這裏的最後一天(實習),我想在離開之前完成最後一件事。

謝謝你的一切幫助。

回答

0

嘗試使用StopRoutingHandler。我認爲這個問題是你需要告訴MVC忽略這些URL。

routes.Add(new Route("MaintenanceReports/{*resource}", 
        new StopRoutingHandler())); 

更新

它看起來像上面沒有爲Views文件夾內的路由工作。簡單的解決方案是將WebFormsViews文件夾中移出,WebForms與MVC一起使用。

+0

嗯......現在,它忽略了所有的路由。現在單擊「維護報告」鏈接也會給我​​帶來同樣的錯誤,而不會將我帶到索引頁面。儘管如此,我認爲你的想法是正確的。 –

+0

你可以發佈你的路由,適用於我沒有任何額外的路由規則。啊剛剛注意到你實際上在Views文件夾中有這個問題。 – TheCodeKing

+0

你是指global.asax文件中的東西嗎?我還沒有擰任何路由。它仍然使用默認格式。 –

0

您也可以加入這行到顯示.asxp頁面

<httpHandlers> 
    <!-- see below --> 
    <clear /> 
    <add path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory"/> 
    <add path="*" verb="*" type="System.Web.HttpNotFoundHandler" /> 
</httpHandlers> 
相關問題