如果这是显而易见的,那么很抱歉,但我正在尝试使a属性处理部分视图中使用的模型的缓存。
[MyCache(typeof(MyModel))]
public ActionResult MyAction(string fooId)
{
return PartialView(new MyModel());
}我的属性应该用post上的输入模型更新缓存,并用缓存模型覆盖get上的操作结果。
但是,我不知道如何从contoller外部调用PartialView方法。这个构造函数似乎没有任何参数:
new PartialViewResult(filterContext.HttpContext.Cache.Get("MyModelCache")[model.Name]);如何使用剃须刀视图构建模型?谢谢。
发布于 2013-02-26 12:03:04
filterContext.Controller.ViewData.Model =
filterContext.HttpContext.Cache.Get("MyModelCache")[model.Name];
filterContext.Result = new PartialViewResult
{
ViewData = filterContext.Controller.ViewData,
ViewName = "~/Views/_NameOfPartial", // optional if you need it
};以下是带有两个参数的控制器中PartialView方法的来源:
namespace System.Web.Mvc
{
public abstract class Controller : ControllerBase, (etc)
{
...
protected internal virtual PartialViewResult PartialView(
string viewName, object model)
{
if (model != null)
this.ViewData.Model = model;
PartialViewResult partialViewResult = new PartialViewResult();
partialViewResult.ViewName = viewName;
partialViewResult.ViewData = this.ViewData;
partialViewResult.TempData = this.TempData;
partialViewResult.ViewEngineCollection = this.ViewEngineCollection;
return partialViewResult;
}
...
}
}发布于 2013-02-26 12:03:48
尝尝这个
new PartialViewResult
{
ViewData = new ViewDataDictionary(filterContext.HttpContext.Cache.Get("MyModelCache"))[model.Name],
}https://stackoverflow.com/questions/15088513
复制相似问题