问题标签 [controllercontext]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5475 浏览

c# - 在 Web api 控制器中使用 ControllerContext.RequestContext

我正在尝试集成SagePayMvc.dll到一个 ASP.NET Web API 项目中,该项目需要ControllerContext.RequestContext传递才能形成通知 URL。

目前我在实现这一点时遇到了一些困难,我需要ControllerContext.RequestContext从这个 web api 控制器传递:

我试图ControllerContext controllerContext = new ControllerContext()在 SagePayHelper 实例化下方添加一个公共,然后随后添加var context = controllerContext.RequestContext,这个问题内部RequestContext的任何方法都没有被实例化,所以当 SagePayMvc 到达在IUrlResolver接口内完成的构建通知 URL 的点时,会引发错误.

有没有一种ControllerContext.RequestContext模拟的方法,我以前使用过 RhinoMocks 或者恢复到我之前在表单项目中实现 SagePayMvc 的方式会更谨慎(表单项目是一个 MVC 4 应用程序,它序列化并将表单数据发送到网络 API)。

任何建议将不胜感激。

0 投票
1 回答
1682 浏览

asp.net-mvc - 使用 View.Render 方法将 MVC 视图转换为字符串的单元测试方法

我编写了将 MVC 视图转换为字符串的方法和测试方法来检查它是否返回字符串。

当然,它适用于 Web,但是当我在 NUnit 中运行测试时,当方法尝试调用 View.Render 时,它会在 System.Web 中引发 NullReferenceException。

这是堆栈跟踪:

渲染方法代码:

以及带有控制器上下文模拟的测试方法:

我在这里读到原因是_virtualPathNULL 。HttpRuntime.AppDomainAppVirtualPathString int System.Web.VirtualPathString

那么是否可以将它们设置为单元测试?

0 投票
1 回答
2095 浏览

asp.net-mvc - 我可以从 HttpContext 访问 ViewData 吗?

我正在使用一个项目,该项目在其授权操作过滤器中设置变量(例如当前用户配置文件对象),并将它们存储在ViewData以下操作方法中以供访问。

然后操作方法从存储库中调用功能。我正在尝试找到一种在不修改存储库的方法签名ViewData的情况下从存储库访问的方法,并希望有一种方法可以通过我可以从存储库调用的功能来追踪它。HttpContext.Current

有人能帮忙吗?为了清楚起见,我唯一可以修改的代码是在存储库方法中:(

0 投票
3 回答
2174 浏览

.net - 将 Razor 视图渲染为字符串 => 从循环任务调用时,ControllerContext 为空

我正在使用 ASP.NET MVC3
我有一个.cshtml视图,我想将其字符串化以合并到电子邮件正文中。
这是我使用的方法:

当我从ActionResult从 Ajax 调用中调用的方法中调用此方法时,这非常有效

但是,我面临一个不寻常的情况:

在我的Global.asax文件中,我有一个每 10 分钟调用一次的方法,其目标是验证最近 10 分钟内是否在数据库中创建了一些特殊记录,如果是,则发送电子邮件。当然,邮件正文就是这个字符串化的视图。

这是我的一段代码:这个方法非常受这篇文章的启发

SendEmail()方法应该创建电子邮件的正文,获取视图并将其放入 HTML 字符串中以发送

在这里,RenderRazorViewToString()(方法的主体在这篇文章的顶部给出)在这一行失败:

ControllerContext 不能为空

为什么,仅在这种情况下ControllerContextnull?我已经阅读了这篇文章,但如果我理解正确,这是因为我手动实例化了我的控制器写作:

但是,我不知道如何继续...

任何帮助将不胜感激。
谢谢

0 投票
2 回答
991 浏览

c# - 如何在 ControllerContext 中模拟 DisplayMode 以进行单元测试 c#

我想在我的控制器中测试一个操作,该操作使用 controllerContext 作为参数来生成基于第 3 部分库“Rotativa”的 pdf 文档。
这是动作(功能)的实现:

这就是我试图让单元测试工作的方式:

  • 构造函数

    /li>
  • 测试功能

    当我执行测试时,出现以下错误: 在此处输入图像描述

测试名称:DetailsPrint_shouldPrint 测试全名:OPSReviewTest._2A1ControllerTest.DetailsPrint_shouldPrint 测试源:C:\inetpub\wwwroot\OpsReview\OPSReviewTest\Controllers\Api_2A1ControllerTest.cs:第 46 行测试结果:失败测试持续时间:0:04:39,3039007 结果 StackTrace :
在 System.Web.WebPages.DisplayModeProvider.GetDisplayMode(HttpContextBase context) 在 System.Web.Mvc.ControllerContext.get_DisplayMode() 结果消息:测试方法 OPSReviewTest._2A1ControllerTest.DetailsPrint_shouldPrint 抛出异常:System.NullReferenceException:对象引用未设置为对象的实例。

任何帮助或建议,谢谢。

0 投票
0 回答
143 浏览

pdf-generation - 从另一个控制器调用 Action 后 Rotativa pdf 产生问题

从另一个控制器调用 Action 后在 ControllerContext 出现错误:-

0 投票
1 回答
3144 浏览

c# - 在 AuthorizeAttribute Mvc Core Web Api 中获取控制器实例

我使用下面的类来控制我的 api 方法请求并设置 BaseController 类的一些属性以在方法中常用。这个来自 Asp.Net Mvc Web Api

但是当我试图在 Asp.Net Mvc Core Api 中实现相同的结构时,我无法到达已初始化的控制器实例。有什么办法可以得到那个实例。

使用 Microsoft.AspNetCore.Authorization;

0 投票
1 回答
42 浏览

model-view-controller - Rotativa BuildFile 没有击中操作方法

我的 Controller 类中有两个操作方法:

  1. DetailsAll:获取一些数据并显示在视图中
  2. SaveAsPDF:在 DetailsAll.cshtml 的 windows.load 上调用,应将 DetailsAll 视图保存为 pdf

我的问题在于 SaveAsPDF Action 方法。在这里,我尝试使用 Rotativa ActionAsPdf 和随后的 BuildFile 方法来生成和保存 PDF。但是,在执行“BuildFile”行时,它没有在我的 DetailsAll Action 方法中命中断点,随后导致 PDF 生成空白。

你能帮我解决我哪里出错了吗?