7

У меня есть Elmah на моем сайте ASP.NET MVC, и я хотел бы интегрировать его интерфейс со страницами администрирования сайта. По умолчанию вы вызываете интерфейс с url ~/elmah.axd, который выходит за пределы системы MVC. Для установки требуется, чтобы MVC игнорировал маршрут, поэтому нет контроллера или чего-либо, что знает о elmah. Установки предполагают определенный игнорировать, даже если он уже игнорируется по умолчанию:Как интегрировать axd (Elmah) в качестве компонента в ASP.NET MVC-сайт

public class MvcApplication : System.Web.HttpApplication { 
    public static void RegisterRoutes(RouteCollection routes) { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
     routes.IgnoreRoute("elmah.axd"); 
... 
} 

Я хотел бы попробовать интегрировать elmah.axd как компонент сайта. Я имею в виду, чтобы иметь контроллер Elmah с тем, что использует вспомогательный Html.RenderRoute фьючерсов, но я не уверен, какие аргументы передать:

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 
    <h2>Elmah</h2> 
    <% Html.RenderRoute(???); %> 
</asp:Content> 

ли это имеет смысл - есть способ, чтобы передать URL-адрес в Html.RenderRoute? Есть ли лучший способ, который не использует Html.RenderRoute?

ответ

7

Попробуйте это на ваш взгляд, вместо:

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 
    <h2>Elmah</h2> 
    <iframe src="<%= Url.Content("~/elmah.axd") %>" frameborder=no width=100% scrolling=auto> 
    </iframe> 
</asp:Content> 
+1

Спасибо за это - IFrame отлично работает. Я настолько догнал в контроллерах, что забыл про прямой HTML. – keithm

 Смежные вопросы

  • Нет связанных вопросов^_^