【发布时间】:2015-08-04 17:25:53
【问题描述】:
我正在尝试在我的 asp .net mvc4 项目的根文件夹之外显示图像 - 无济于事。 我在 .master 页面和 .ascx 控件中尝试过的 img 标签是:
<img src='@Url.Action("someimage", "imagesController")' />
我的控制器看起来像:
class imagesController : Controller
{
public ActionResult someimage()
{
return File(@"C:\...\image.png", "image/png");
}
}
上面的方法没有被调用,而是我得到一个:http://localhost:62372/Builder/@Url.Action(%22someimage%22,%20%22imagesController%22) 加载资源失败:服务器响应状态为 500(内部服务器错误)
这是我的路线,以防万一:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
//--default routing and default route--
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Login", action = "OpenLogin", id = UrlParameter.Optional } // Parameter defaults
);
}
我收集了有关该错误的更多信息: 异常信息:
异常类型:ArgumentException
异常消息:路径中有非法字符。
在 System.IO.Path.CheckInvalidPathChars(字符串路径)
在 System.IO.Path.Combine(String path1, String path2)
...
【问题讨论】:
-
您需要获取一般 500 错误的详细信息。为 IIS 启用远程错误,您还没有这样做。但这可能是文件权限问题。
-
我正在使用 VS2010 调试器,我应该为此切换到 IIS 吗?
-
是否可以调用控制器中的方法并将值保存在 ViewBag 变量中?然后,您可以在页面上调用该变量,而不必担心有一个方法来提供它。
-
一开始没有调用控制器中的方法
-
对,我是说根本不要那样做,你应该在调用该页面的 ActionResult 时提供该图像位置。
标签: c# asp.net asp.net-mvc asp.net-mvc-4