有谁知道是否可以检查HtmlHelperExtension中是否存在部分视图?
我知道可以从控制器使用以下内容:
private bool ViewExists(string name)
{
ViewEngineResult result = ViewEngines.Engines.FindView(ControllerContext, name, null);
return (result.View != null);
}
Run Code Online (Sandbox Code Playgroud)
但是您无法在帮助程序中执行上述操作,因为您无权访问控制器上下文.有关如何做到这一点的任何想法?
Dar*_*rov 33
但是您无法在帮助程序中执行上述操作,因为您无权访问控制器上下文.
哦,是的,你有权访问:
public static HtmlString MyHelper(this HtmlHelper html)
{
var controllerContext = html.ViewContext.Controller.ControllerContext;
var result = ViewEngines.Engines.FindView(controllerContext, name, null);
...
}
Run Code Online (Sandbox Code Playgroud)
Sam*_*les 10
为了完整起见,找到局部视图的方法实际上如下.
public static HtmlString MyHelper(this HtmlHelper html)
{
var controllerContext = html.ViewContext.Controller.ControllerContext;
ViewEngineResult result = ViewEngines.Engines.FindPartialView(controllerContext, name);
...
}
Run Code Online (Sandbox Code Playgroud)
并确保包括视图的扩展; 用于razor的cshtml或用于webforms视图引擎的aspx.
| 归档时间: |
|
| 查看次数: |
9983 次 |
| 最近记录: |