视图SOMETIMES中的@ Url.Action不起作用

时间:2016-07-29 18:15:45

标签: c# asp.net-mvc asp.net-mvc-5

在我看来,我有类似以下的内容

<img src="@Url.Action("GetImage", new {param1 = ViewBag.Param1, page = ViewBag.Page })" alt="" />

这在某些时候有用。但是,每隔一段时间图像就不会加载。我在GetImage ActionResult中设置了一个断点,当图像没有加载时,断点没有被击中。

这种行为似乎是完全随机的,如果我只是一遍又一遍刷新页面,有时它会工作,但有时却不会。有什么想法或建议吗?

2 个答案:

答案 0 :(得分:0)

观点:

<img src="@Url.Action("GetImage",new {name="google.png"})" alt="" />

和控制器操作如下所示

[AcceptVerbs(HttpVerbs.Get)]
public FileResult GetImage(string name)
{
     var path = @"C:\VS2015\Images\" + name;
     return new FileStreamResult(new FileStream(path,FileMode.Open),"image/jpeg");
}

希望您的控制器操作代码如上所示。 它会正常工作。

答案 1 :(得分:0)

(应该是评论但是太长了......)

在开始诊断服务器端问题之前,请先了解实际问题。

打开浏览器开发人员工具(获胜时为F12),切换到“网络”选项卡并保持刷新,直到出现问题。 (注意:当dev工具打开时,有一个禁用浏览器缓存的设置,请确保取消选中它以准确复制情况)

出现问题时,向下滚动到图像请求,并检查是否从服务器或本地缓存中提取了ti。如果从服务器,应该有一个状态代码,它会给你一个提示(404/500),并且响应正文可能包含有用的信息(如果你的服务器配置为显示错误,就像一个完整的堆栈跟踪)。至少,服务器响应意味着建立了连接,并且服务器日志中应该有一些有用的信息。

问题还在于浏览器缓存或客户端与服务器之间的代理问题。

最后,如果它是服务器端的问题,并且您无法在浏览器中看到错误详细信息,请翻阅服务器事件日志。所有.Net错误都记录在那里(至少默认)。

一旦您获得了有关导致问题的更多信息,请编辑您的问题,我们可以从那里开始。