MVC3剃须刀 - Response.WriteSubstitution总是显示我的文字ontop

2019-07-30 03:55发布

。 亲爱的开发家伙:)

我正在学习ASP.NET MVC3和我坚持,当我使用Response.WriteSubsitution()方法。

每次我尝试在页面中使用它,则取代的文字总是在页面顶部显示( 屏幕截图在这里 )。

考虑到我有我的控制器下面的代码:

public class HomeController : Controller
{
        public ActionResult Index()
        {
            ViewBag.Message = "Welcome to ASP.NET MVC!";
            return View();
        }

        [OutputCache(Duration=20)]
        public ActionResult About()
        {
            ViewBag.Date = DateTime.Now;
            return View();
        }
}

守则About.cshtml:

@using MvcApplication1;
@{
    ViewBag.Title = "About Us";
}

<h2>About</h2>
<p>
    Date : @ViewBag.Date<br />
    Random Substitued number : @{ Response.WriteSubstitution(MvcApplication1.Helpers.Test); }
</p>

我的助手类:

namespace MvcApplication1
{
    public static class Helpers
    {
        public static string Test(HttpContext context)
        {
            Random r = new Random();
            return r.Next(0, 10).ToString(CultureInfo.InvariantCulture);
        }
    }
}

我错过了什么 ?

谢谢 !

编辑与解决方案:

我解决与@Darin季米特洛夫的解决方案的问题。

人们在我不变的情况下,这是我的新代码。

我的控制器:

[DonutOutputCache(Duration = 10)]
        public ActionResult About()
        {
            ViewBag.Date = DateTime.Now;
            return View();
        }

        public string RandomNumber()
        {
            Random r = new Random();
            return r.Next(0, 10).ToString(CultureInfo.InvariantCulture);
        }

MvcDonutCaching实现DonutOutputCacheAttribute我们不得不改用内置的OutputCacheOutput类。

我的看法 :

@using MvcApplication1;
@{
    ViewBag.Title = "About Us";
    Layout = "~/Views/Shared/Mobile/Layout.cshtml";
}

<h2>About</h2>
<p>
    Date : @ViewBag.Date<br />
    Random Substitued number : @Html.Action("RandomNumber", true)
    @Side
</p>

该包装重载Html.Action的方法来控制所述高速缓存:)

感谢那些养活这个线程所有的人。

Answer 1:

我正在学习ASP.NET MVC3和我坚持,当我使用Response.WriteSubsitution()方法。

忘记这个方法在ASP.NET MVC 3作为菲尔哈克解释 。 根本就不使用它。 如果你想在ASP.NET MVC 3实现甜甜圈缓存,该框架有没有向你提供。

有第三方软件包 ,如果你不希望推出自己的,可以启用此功能。



文章来源: MVC3 Razor - Response.WriteSubstitution always displays my text ontop of the page