Response.WriteSubstitution在请求开始时输出内容

时间:2014-10-10 16:35:35

标签: asp.net-mvc asp.net-mvc-4 asp.net-mvc-5 outputcache

我正在尝试让WriteSubstition在MVC 5中工作,并且在执行替换时,它在请求开始时执行,而不是在调用替换的位置。

我使用了以下扩展方法:

public static class HtmlExtensions
{
    public delegate string CacheCallback(HttpContextBase context);
    public static object Substitution(this HtmlHelper myHtml, CacheCallback cacheCallback)
    {
        myHtml.ViewContext.HttpContext.Response.WriteSubstitution(
           c => HttpUtility.HtmlEncode(
                cacheCallback(new HttpContextWrapper(c))
           ));
        return null;
    }
}

并在Index.cshtml中调用它,如下所示:

<div class="row">
    <div class="col-md-4">
        <h2Test</h2>
            @DateTime.Now
            @Html.Substitution(ctx => DateTime.Now.ToString())
            @{Html.ViewContext.HttpContext.Response.WriteSubstitution(c => DateTime.Now.ToString());}
    </div>
</div>

正如你所看到的,我也尝试了没有扩展方法,调用WriteSubstitution内联。当页面呈现时,替换块位于请求的开头:

10/10/2014 11:33:46 AM10/10/2014 11:33:46 AM<!DOCTYPE html>
<html>

这是WriteSubstitution中的错误,还是我做错了什么?

0 个答案:

没有答案