_Layout.cshtml中的HtML部分
<div id="header">
<div class="logo"><a href="#"><img src="@Url.Content("~/!(IMAGEPATH)!/logo.png")" alt="" /></a></div>
<div class="fb_like"><img src="@Url.Content("~/!(IMAGEPATH)!/fb_like_btn.png")" alt="" /></div>
<div class="google_plus"><img src="@Url.Content("~/!(IMAGEPATH)!/google_plus.png")" alt="" /></div>
<div class="header_rt">
<ul>
<li>Call us: 1500 258 789</li>
<li><a href="#">Live chat</a></li>
<li><a href="#">My Account</a></li>
<li><a href="#">Sign in</a></li>
</ul>
<div class="search">
<input type="text" value="Type your keyword..." class="srh_txt" />
<input name="Submit" type="submit" value="Submit" class="srh_btn" />
</div>
</div>
</div>
<div id="main">
@RenderBody()
</div>
Index.cshtml中的Html部分
@{
ViewBag.Title = "Home Page";
}
<div class="clr"></div>
<div id="banner">
<div id="slider"><img src="@Url.Content("~/!(IMAGEPATH)!/banner.jpg")" alt="" /></div>
<div class="banner_rt">
<div class="adv1"><img src="@Url.Content("~/!(IMAGEPATH)!/adv1.jpg")" alt="" /></div>
<div class="adv2"><img src="@Url.Content("~/!(IMAGEPATH)!/adv2.jpg")" alt="" /></div>
</div>
使用波纹管代码我能够替换!(IMAGEPATH)!仅限_Layout.cshtml
void Application_PostReleaseRequestState(object sender,EventArgs e)
{
if(string.CompareOrdinal(Response.ContentType,"text/html") == 0)
{
Response.Filter = new ResponseFilter(Response.Filter);
}
}
但上面描述的代码不会影响像 Index.cshtml 这样的子页面。请告诉我 ASP.NET MVC3 中的任何事件,例如经典ASP.NET的旧受保护覆盖void OnPreInit(EventArgs e) !!!!
我想知道在MVC3中渲染之前影响所有子页面的事件是什么?
答案 0 :(得分:0)
在基本控制器中,编写以下代码
protected override void OnResultExecuting(ResultExecutingContext filterContext)
{
var response = filterContext.HttpContext.Response;
if (string.CompareOrdinal(response.ContentType, "text/html") == 0)
{
response.Filter = new ResponseFilter(response.Filter);
}
base.OnResultExecuting(filterContext);
}