这是我的代码:
public class StoreController:Controller
{
public ActionResult Index()
{
var page=new PageHelper<Store>();
return page.PageView(this);
}
}
public class PageHelper<T>
{
public List<T>DataSouce {get;set;}
public ActionResult PageView(Controller controller)
{
var action = controller.RouteData.Values["action"].ToString();
if (controller.Request.IsAjaxRequest())
//my question is it can not call the PartialView or controller.View
return controller.PartialView(action);
return controller.View(DataSource);
}
}
我无法在PartialView
函数中调用controller.View
或PageView
。
我该怎么做?
现在这段代码:&#34; controller.PartialView(action);&#34;在PageView
函数中将编译
错误。为什么不能调用View()或PartialView()?
答案 0 :(得分:1)
View和PartialView是受保护的内部方法。
可以通过程序集中的任何代码访问类型或成员 声明它,或从另一个派生类中声明它 组装
你应该让你的班级PagerHelper继承自Controller。
之后你可以在你的PageView方法中调用
public ActionResult PageView(Controller controller)
{
ViewBag.DataSource = DataSource;
ViewBag.PageHtml = PageHtml;
ViewBag.AjaxPageHtml = AjaxPageHtml;
if (controller.Request.IsAjaxRequest())
return PartialView(AjaxTag);
var action = controller.RouteData.Values["action"].ToString();
return View(action);
}
我已经测试了你的项目,现在它可以运行了。