我在子文件夹下分隔我的视图,我在控制器中只有一个Action方法,我在数据库中有我的视图名称,当我通过传递参数调用action方法时(例如:id = 1),它将从数据库中获取视图名称,并将加载相应的视图。
public ActionResult Index(int FormId)
{
var getViews = db.fetchViews.where id = 1; //get views from db
return view(getviews.viewName);
}
这是我在解决方案中的观点。
当我从动作方法调用视图时,它说无法找到视图。
我不能像这样在
return View("~/Views/Form/Customer1/getviews.viewName");
任何想法都会受到赞赏......
答案 0 :(得分:0)
喜欢这个吗?
public ActionResult Index(int FormId)
{
var viewName = "~/Views/Form/Customer" + FormId + "/customer" + FormId;
return View(viewName);
}
答案 1 :(得分:0)
如果您无法将视图移动到剃刀视图引擎正在查找的目录,您可以尝试这样做:
public ActionResult Index(int FormId)
{
var getViews = db.fetchViews.where id = 1; //get views from db
var viewpath = string.Format("~/Views/Form/{0}/{0}", getviews.viewName);
return View(viewpath);
}
或者,您可以创建一个自定义RazorViewEngine,它可以在同名的子目录中搜索视图。
此post有一种向剃刀视图引擎添加搜索视图位置的方法,您的自定义搜索视图格式将是这样的:
new string[]
{
"~/Views/{1}/{0}/{0}.cshtml"
}
答案 2 :(得分:0)
如果您希望根据需要搜索视图,可以继承RazorViewEngine并修改Razor将查看的路径。您可能会看到此SO post