问题与以下事实有关:在虚拟视图的情况下,从文件或数据库中检索内容的视图继承自System.Web.Mvc.ViewStartPage
包含 Html 和 Url,但不包含 ViewBag 或 Ajax 属性的视图。虚拟视图引用如下
public class DynamicViewsController : Controller
{
public ActionResult GetView()
{
//SomeModel model = new SomeModel() { Count = 1 };
return View("/Virtual/VirtualViewToShow.cshtml");
}
}
位于 ~/Views/ 文件夹中的视图继承自 System.Web.Mvc.WebViewPage,其中定义了 ViewBag 和 ViewData 以及 Ajax 属性。
更改操作方法的解决方法如下
public PartialViewResult GetView()
{
//SomeModel model = new SomeModel() { Count = 1 };
return PartialView("/Virtual/VirtualViewToShow.cshtml");
}
并添加
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
到虚拟视图的文本,以便也加载布局。我不知道虚拟视图继承自的原因System.Web.Mvc.ViewStartPage
,但我会尝试在另一个线程中找到原因,并在创建线程时发布链接。
已编辑
所以说新创建的线程的链接在这里
附上“显示完整编译源”截图