0
如果我有控制器HomeController
和动作Index()
,但我有我的模板Views/Index.cshtml
而不是Views\Home\Index.cshtml
- 有没有办法让我绕过传统的加载机制来渲染前者?如何为Razor模板指定特定路径?
如果我有控制器HomeController
和动作Index()
,但我有我的模板Views/Index.cshtml
而不是Views\Home\Index.cshtml
- 有没有办法让我绕过传统的加载机制来渲染前者?如何为Razor模板指定特定路径?
是的,你可以从View
方法中明确地告诉从何处加载视图。你只需要与~/Views
启动viewName
参数,你也写出来,的.cshtml
扩展:
public class HomeController : Controller
{
public ActionResult Index()
{
return View("~/Views/Index.cshtml");
}
}
然而,MVC约定是,如果你有意见不属于一个特定的控制器则这些视图应该转到Views \ Shared文件夹,然后从那里查找它们。
尝试不使用“.cshtml”,我得到:没有找到'〜/ Views/Index'或其主人的视图或没有视图引擎支持搜索的位置。搜索到以下位置: 〜/ Views/Index –
没有“.cshtml”扩展名无法使用。你必须使用'return View(“〜/ Views/Index.cshtml”);'就像我在回答中写的那样。 – nemesv
明白了!这限制了我使用剃刀我承担?有没有办法做到这一点,以便模板解析器仍然可以选择引擎? –