asp.net-core – 如何在Asp.net核心服务类中调用View组件?
发布时间:2020-12-16 09:41:08 所属栏目:asp.Net 来源:网络整理
导读:我需要在服务类(而不是控制器)中调用视图组件.我的目标是将视图组件呈现为字符串,然后处理 HtmlString. 我可以找到帮助在ActionContext可用的控制器中呈现视图组件但我无法从控制器调用我的服务.有什么帮助吗?我很高兴使用Mock和默认依赖注入. 目前,我正在
我需要在服务类(而不是控制器)中调用视图组件.我的目标是将视图组件呈现为字符串,然后处理
HtmlString.
我可以找到帮助在ActionContext可用的控制器中呈现视图组件但我无法从控制器调用我的服务.有什么帮助吗?我很高兴使用Mock和默认依赖注入. 目前,我正在使用mvc 6 beta 2.这是我班级的代码 public class MyClass { Microsoft.AspNet.Mvc.DefaultViewComponentHelper viewComponentHelper = null; Microsoft.AspNet.Mvc.Razor.RazorView razorView = null; public MyClass(IViewComponentSelector selector,IViewComponentInvokerFactory factory,IRazorPageFactory razorPageFactory,IRazorViewEngine razorViewEngine,IRazorPageActivator pageActivator,IViewStartProvider viewStartProvider) { viewComponentHelper = new DefaultViewComponentHelper(selector,factory); razorView = new RazorView(razorViewEngine,pageActivator,viewStartProvider,null,true); } public void MyAction { var view = new Mock<IView>().Object; var actionContext = new ActionContext(new RouteContext(new DefaultHttpContext()),new ActionDescriptor()); var viewData = new ViewDataDictionary(new EmptyModelMetadataProvider(),new ModelStateDictionary()); var viewContext = new ViewContext(actionContext,view,viewData,TextWriter.Null); viewComponentHelper.Contextualize(viewContext); var result = viewComponentHelper.Invoke("MyView").ToString(); } } 我得到以下异常 at Microsoft.Framework.DependencyInjection.ServiceProviderExtensions.GetRequiredService(IServiceProvider provider,Type serviceType) at Microsoft.AspNet.Mvc.DefaultViewComponentActivator.<>c__DisplayClass6.<CreateActivateInfo>b__7(ViewContext viewContext) at Microsoft.AspNet.Mvc.PropertyActivator`1.Activate(Object view,TContext context) at Microsoft.AspNet.Mvc.DefaultViewComponentActivator.Activate(Object viewComponent,ViewContext context) at Microsoft.AspNet.Mvc.DefaultViewComponentInvoker.CreateComponent(ViewContext context) at Microsoft.AspNet.Mvc.DefaultViewComponentInvoker.InvokeSyncCore(MethodInfo method,ViewContext context) at Microsoft.AspNet.Mvc.DefaultViewComponentInvoker.Invoke(ViewComponentContext context) at Microsoft.AspNet.Mvc.DefaultViewComponentHelper.InvokeCore(TextWriter writer,Type componentType,Object[] arguments) at Microsoft.AspNet.Mvc.DefaultViewComponentHelper.Invoke(Type componentType,Object[] args) at Microsoft.AspNet.Mvc.DefaultViewComponentHelper.Invoke(String name,Object[] args) 解决方法
在启动文件的ConfigureServices部分中,您需要注册您的服务,即:
public void ConfigureServices(IServiceCollection services) { // Add MVC services to the services container. //services.AddMvc(); services.AddTransient... } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 在IIS7上部署MVC应用程序的最佳实践
- asp.net-mvc – asp.net mvc 3中DataAnnotations的行为是否
- asp.net – 如何获取Silverlight XAP复制到客户端上的构建
- 模型 – 视图 – 控制器 – ASP.NET MVC:将ViewModels嵌套
- asp.net-core – 根据ASP.NET Core中请求标头中提供的API密
- 如何在asp.net中更改javascript警告框的标题?
- MVC 3指定远程验证的验证触发器
- ASP.NET MVC4 Google oAuth
- asp.net – Visual Basic以编程方式将用户名和密码传递给ht
- asp.net – 防止意外双击按钮
推荐文章
站长推荐
- asp.net-mvc – ASP.NET MVC – ModelState.IsVa
- asp.net – 如何使用反射在app_code中创建一个类
- asp.net-mvc-3 – MVC-3和Html.Serialize(ASP.NE
- 在ASP.Net中获取会话ID
- asp.net-mvc – IIS 7.0不显示自定义错误页面
- asp.net – 类型存在于’A’和’B’
- asp.net-core – 无法运行使用yeoman生成器生成的
- asp.net-mvc – Ext.NET没有与ASP.NET MVC 4集成
- asp.net-mvc-3 – 在ASP.NET MVC中,“<%=”,“<
- asp.net-mvc – 返回ASP.Net Core MVC中的上一页
热点阅读