被asp.net mvc逼疯了。。<img>的src到底应该肿么写?

我嘞个去。。被asp.net mvc逼疯了。。<img>的src到底应该肿么写?

0
 悬赏园豆:10 [已解决问题] 浏览: 3624次 

btn_picture.png是放在Views目录下的

mumuliang的主页mumuliang 菜鸟二级 | 园豆:213
提问于:2013-09-17 18:18

问题补充:

试了这么多种全都没显示。

(最新进展是@url.content("~/Views/btn_picture.png")也失败了。。。。)

 
最佳答案
0

直接把图片拖到cshtml里就会产生链接了,干嘛费脑筋自己写啊。。。

收获园豆:4
回复 ````` 专家六级 |园豆:14063 | 2013-09-18 09:51 |

拖进去了。生成的是<img src="~/Views/btn_picture.png" />。

但是。还是不显示。

支持(0)反对(0)回复 mumuliang | 园豆:213 (菜鸟二级) | 2013-09-18 10:03 |

@mumuliang: 不显示换个浏览器  调试下看图片最后链接是到那个地址上了。很好调试的。

支持(0)反对(0)回复 ````` | 园豆:14063 (专家六级) | 2013-09-18 10:05 |

@imfunny: 

<img src="/Views/btn_picture.png"></img> 

这是最后生成的html。用图片地址打开会404。。这是啥情况?

但这个图片肯定是在的。

是不是它认为Views这是一个Controller的名字,而我又没有这个ViewsController还是什么的?

 浏览器的话,chrome、ie都试过了。

支持(0)反对(0)回复 mumuliang | 园豆:213 (菜鸟二级) | 2013-09-18 10:10 |

@mumuliang: 汗。Views应该是不能够呗直接访问的。放到其他文件夹下看下 。

支持(0)反对(0)回复 ````` | 园豆:14063 (专家六级) | 2013-09-18 10:13 |

@imfunny: 为啥?

支持(0)反对(0)回复 mumuliang | 园豆:213 (菜鸟二级) | 2013-09-18 10:24 |

@mumuliang: 有可能Views的请求被Views下config给拦截了。放到Content下看看。这个我不确定。。

支持(0)反对(0)回复 ````` | 园豆:14063 (专家六级) | 2013-09-18 10:27 |

@imfunny:说到这个,我新建的项目为什么默认没有这个content目录啊?

支持(0)反对(0)回复 mumuliang | 园豆:213 (菜鸟二级) | 2013-09-18 10:32 |

@imfunny: 

可以确定了,见Views文件中的web.config:

<handlers>
  <remove name="BlockViewHandler"/>
  <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
支持(0)反对(0)回复 dudu | 园豆:32800 (高人七级) | 2013-09-18 10:32 |

@mumuliang: 这个俺真不知道。估计被隐藏了。

支持(0)反对(0)回复 ````` | 园豆:14063 (专家六级) | 2013-09-18 10:34 |

@dudu: 嗯嗯,收到。

支持(0)反对(0)回复 ````` | 园豆:14063 (专家六级) | 2013-09-18 10:35 |
其他回答(8)
0

为什么要放在Views目录下,一般放在Images目录下

收获园豆:3
回复 dudu | 园豆:32800 (高人七级) | 2013-09-17 18:30 |

是不规范,规范还在建立。⊙▽⊙

支持(0)反对(0)回复 mumuliang | 园豆:213 (菜鸟二级) | 2013-09-17 19:45 |

@mumuliang: 

感觉一下这样的写法:

<img src="/Views/btn_picture.png"/>
支持(0)反对(0)回复 dudu | 园豆:32800 (高人七级) | 2013-09-18 10:13 |

@dudu: 

毫无意外的。。。。不能显示!哇哈哈

但是你说对了,这个问题的关键是,为什么要放在Views下?

我试过了C和M下放图片拖进去都能正常显示,就是V不行。可能是出于安全?或者会造成无穷递归(不太确切的说法,就是view解释器本来就是解释views目录下的,然后src又来自自己本身什么的。。瞎掰)?或者什么其他我猜不到的考虑吧。

支持(0)反对(0)回复 mumuliang | 园豆:213 (菜鸟二级) | 2013-09-18 10:23 |

@mumuliang: 

的确是被拦截了,Views文件夹中的web.config中有如下的配置:

<handlers>
  <remove name="BlockViewHandler"/>
  <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
支持(0)反对(0)回复 dudu | 园豆:32800 (高人七级) | 2013-09-18 10:30 |

@dudu: 

原来如此。

支持(0)反对(0)回复 mumuliang | 园豆:213 (菜鸟二级) | 2013-09-18 10:32 |
0

你的问题描述的让人很纠结啊/

 
回复 Beyond-bit | 园豆:2618 (老鸟四级) | 2013-09-17 18:46 |

请赐教

支持(0)反对(0)回复 mumuliang | 园豆:213 (菜鸟二级) | 2013-09-17 19:46 |

@mumuliang: 姑娘,如果你是index.cshtml            这样写即可:<img src="../btn_picture.png">

 

意思就是退出一级目录去找这个图片、

支持(0)反对(0)回复 Beyond-bit | 园豆:2618 (老鸟四级) | 2013-09-18 09:41 |

@Beyond-bit: 

看图。。所有可能的路径我都试过了。。。甚至还做了linux风格路径的。。尝试=v=

支持(0)反对(0)回复 mumuliang | 园豆:213 (菜鸟二级) | 2013-09-18 09:44 |

@mumuliang: 不是你试的多,答案就是一种,退出一级目录找那个图片、你的结构就是这样。

1.如果还出不来,你用firefox的firebug看看是不是路径问题?

 

2.c#是不是需要将图片属性设置为内容-资源,windows phone 是需要,这个可能性不大、

支持(0)反对(0)回复 Beyond-bit | 园豆:2618 (老鸟四级) | 2013-09-18 09:47 |

1已经排除,同样路径的写法在同样位置的html文件中是可以被正确解析显示图片的。

会不会是razor解释cshtml的时候做了什么事?(按说这种没有使用@的部分它不应该动手脚啊)

但是尝试了src=@Url.content("~/Views/btn_picture.png")还是不显示。

 

有没有可能是授权问题?完全是瞎猜了。

支持(0)反对(0)回复 mumuliang | 园豆:213 (菜鸟二级) | 2013-09-18 09:58 |
0
<img alt="图片" src="../picture/login_02.gif" /> 不知道你的项目的架构是怎样,如果用到图片是在Views目录下,那就<img alt="图片" src="./btn_picture.png" /> 不过这样放好像不太规范。。。
收获园豆:2
回复 wj704 | 园豆:170 (初学一级) | 2013-09-17 18:53 |

这么写没有显示出来!太怪了。我用了url.content也没显示出来。太怪了。

支持(0)反对(0)回复 mumuliang | 园豆:213 (菜鸟二级) | 2013-09-17 19:44 |

@mumuliang: 可能还是路径的问题,你把图片放在其他的位置,然后改改路径试试。。

支持(0)反对(0)回复 wj704 | 园豆:170 (初学一级) | 2013-09-17 21:10 |

@wj704: 怀疑已经不是路径的问题了。。你再帮我瞅瞅

支持(0)反对(0)回复 mumuliang | 园豆:213 (菜鸟二级) | 2013-09-18 09:25 |
0

/Views/btn_picture.png

收获园豆:1
回复 sinhbv | 园豆:2579 (老鸟四级) | 2013-09-18 08:55 |
 
0

先放在Content文件夹中试试吧,还有就是看图片返回什么状态。

 
回复 幻天芒 | 园豆:34805 (高人七级) | 2013-09-18 09:57 |

图片返回?

支持(0)反对(0)回复 mumuliang | 园豆:213 (菜鸟二级) | 2013-09-18 10:01 |

@mumuliang: Chrome开发者工具,看状态。是404还是啥~

支持(0)反对(0)回复 幻天芒 | 园豆:34805 (高人七级) | 2013-09-18 10:28 |
0

的确。这个问题的关键就是Views目录下面就是不能访问。M和C下面都可以的。

V下面是出于什么考虑呢

 
回复 mumuliang | 园豆:213 (菜鸟二级) | 2013-09-18 10:18 |

安全考虑。 view里面的东西说白了都是源码啊, 哪能让你直接给下载走呢。

支持(0)反对(0)回复 undefined | 园豆:698 (小虾三级) | 2013-09-18 10:30 |
0

你把图片拿出来吧,细分原因,调试源码。

 
回复 完成V | 园豆:257 (菜鸟二级) | 2013-09-18 10:24 |
 
0

View文件夹本来就不是放东西的。 那里的东西用IIS直接访问都访问不到, 根本拼不出链接的。

 

content文件夹哪去了? 被你删了还是根本没生成?

 
回复 undefined | 园豆:698 (小虾三级) | 2013-09-18 10:29 |

没生成。所以一偷懒就顺手放views里了。说测完再规整。

没想到这一偷懒一顺手就顺走了一个下午。TvT

 

posted @ 2017-10-24 18:57  sky20080101  阅读(400)  评论(0编辑  收藏  举报