当前位置: 首页 > 编程语言 > C#

测试HtmlHelper时如何解决图片路径问题?分享

时间:2023-04-10 20:29:42 C#

测试HtmlHelper时如何解决图片路径问题?我在测试HTML帮助程序时遇到了问题。基本上,我正在创建一个包含大量行、列和不同类型数据的网格。标题中还有一个图像,用于告知用户数??据按哪一列排序。但是,当我现在编写测试时(为时已晚,但迟到总比不迟到好?!),我收到此错误:“应用程序相对虚拟路径‘~/Images/SortingArrowUp.png’无法成为绝对路径,因为应用程序的路径未知。”varimgPath=VirtualPathUtility.ToAbsolute("~/Images/SortingArrowUp.png");我怎样才能解决这个问题。我可以理解这在测试期间可能是什么问题,并且图像可能不可用等等,但是执行此操作的正确方法是什么?正确的方法是调用UrlHelper.GenerateContentUrl而不是VirtualPathUtility。在你的助手代码中你会做这样的事情:MvcHtmlStringMyHelper(thisHtmlHelperhelper,...){//othercodevarimgPath=UrlHelper.GenerateContentUrl("~/Images/SortingArrowUp.png",helper.ViewContext.HttpContext);//其他代码}进行单元测试时,必须传入正确的模拟上下文对象。您需要模拟HttpContext.Request.ApplicationPath-返回一些虚拟应用程序路径,HttpContext.Response.ApplyAppPathModifier()-什么都不做,HttpContext.Request.ServerVariables-返回null,HttpContext.Request.Path和HttpContext.Request.RawUrl-返回一些有意义的价值。您可以使用此重载:varimgPath=VirtualPathUtility.ToAbsolute("~/Images/SortingArrowUp.png",context.Request.ApplicationPath);这就是UrlHelper.GenerateContentUrl在内部使用的,您只需要模拟ApplicationPath。以上就是C#学习教程:测试HtmlHelper时图片路径问题如何解决?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: