Как интегрировать axd (Elmah) в качестве компонента в ASP.NET Сайт MVC
-
23-08-2019 - |
Вопрос
У меня запущен Elmah на моем сайте ASP.NET MVC, и я хотел бы интегрировать его интерфейс со страницами администрирования сайта.По умолчанию вы вызываете интерфейс с URL ~/elmah.axd, который выполняется вне системы MVC.Установка требует, чтобы вы указали MVC игнорировать маршрут, поэтому нет контроллера или чего-либо, что знает об elmah.Установка предполагает определенное игнорирование, даже если оно уже игнорируется по умолчанию:
public class MvcApplication : System.Web.HttpApplication {
public static void RegisterRoutes(RouteCollection routes) {
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("elmah.axd");
...
}
Я хотел бы попробовать интегрировать elmah.axd в качестве компонента сайта.Я подумываю о том, чтобы иметь контроллер Elmah с представлением, которое использует Futures helper Html.RenderRoute, но я не уверен, какие аргументы передавать:
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Elmah</h2>
<% Html.RenderRoute(???); %>
</asp:Content>
Имеет ли это смысл - есть ли способ передать URL в Html.RenderRoute?Есть ли лучший способ, который не использует Html.RenderRoute?
Решение
Попробуйте это вместо вашего Представления:
<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>
Другие советы
или вы можете использовать это на своем сайте