Jez*_*Jez 8 c# asp.net html-helper .net-core asp.net-core
在我的旧 ASP.NET Web 应用程序中,我编写了一个 HTML 帮助程序,以通过访问以下内容来访问执行当前视图的控制器的上下文ViewContext.Controller:
public static string GetControllerString(this HtmlHelper htmlHelper) {
string controllerString = htmlHelper.ViewContext.Controller.ToString();
return ".NET Controller: " + controllerString;
}
Run Code Online (Sandbox Code Playgroud)
然而,这似乎不再存在于 ASP.NET Core 的 HTML 帮助器对象中:
public static string GetControllerString(this IHtmlHelper htmlHelper) {
string controllerString = htmlHelper.ViewContext.Controller.ToString(); // Doesn't exist!
return ".NET Core Controller: " + controllerString;
}
Run Code Online (Sandbox Code Playgroud)
发生什么事了ViewContext.Controller?现在是否无法从 HTML 帮助器对象获取控制器上下文?
他们稍微改变了继承链和术语。因此,在 ASPNET Core 中并不像在旧的 ASPNET MVC框架ViewContext中那样继承。ControllerContext
相反,ViewContext 继承的ActionContext是更通用的术语。
因此,对象Controller上没有继承的属性ViewContext,但您可以使用ActionDescriptor property来获取所需的值。
public static string GetControllerString(this IHtmlHelper htmlHelper) {
string actionDescriptor = htmlHelper.ViewContext.ActionDescriptor.DisplayName;
return ".NET Core Controller: " + actionDescriptorName;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3859 次 |
| 最近记录: |