. Estimado Dev Guys :)MVC3 Razor - Response.WriteSubstitution siempre muestra mi texto en la parte superior de la página
Estoy aprendiendo ASP.NET MVC3 y estoy atascado cuando uso el método Response.WriteSubsitution().
Cada vez que intento usarlo en la página, el texto sustituido siempre aparece en la parte superior de la página (screenshot here).
Teniendo en cuenta que tengo el siguiente código en mi controlador:
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();
}
}
Código de 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>
Mi Clase auxiliar:
namespace MvcApplication1
{
public static class Helpers
{
public static string Test(HttpContext context)
{
Random r = new Random();
return r.Next(0, 10).ToString(CultureInfo.InvariantCulture);
}
}
}
¿Me he perdido algo?
Gracias!
EDITAR con solución:
que resolver el problema con la solución del @Darin Dimitrov.
Para las personas en el mismo caso que yo, este es mi nuevo código.
Mi controlador:
[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 implementa la clase DonutOutputCacheAttribute tenemos que utilizar en lugar de la construcción, en el OutputCacheOutput.
Mi Vista:
@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>
El paquete sobrecarga método Html.Action para controlar el caché :)
Gracias todas las personas que alimentan a este hilo.
¡Hola y gracias por tu respuesta! El paquete MvcDonutCaching resolvió mi problema. – Xeryus