有许多示例展示了如何从文件或数据库存储和检索虚拟视图,但没有一个示例显示如何配置root web.config以便应用程序正常工作,当从一个视图中检索到视图的内容时文件并包含例如@ViewBag.Title = "Some Title"
行。
在这种情况下,我得到 CS0103:当前上下文中不存在名称“ViewBag”错误, 就像我从〜/ Views项目文件夹中删除web.config一样。
那么,从〜/ Views / web.config到root web.config的配置元素是什么来修复上面提到的错误?
是否可以在运行时将config元素加载到assemby中?
答案 0 :(得分:1)
问题与以下事实有关:在虚拟视图的情况下,从文件或数据库中检索内容的视图继承自包含Html和Url的System.Web.Mvc.ViewStartPage
,但不包含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
的原因,但我会尝试在另一个线程中找到原因,并在创建线程时发布链接。
<强>被修改强>
所以说新创建的帖子的链接是here
“显示完整编译源”屏幕截图附件
答案 1 :(得分:0)
按照上述步骤操作,你就完成了!