创建了一个MVC项目,视图上有个img标签和一个按钮,当我点击按钮的时候,会把在数据库的路径赋给img标签。库中保存的是~/imgs/111.jpg。我直接付给img的时候,图片没显示,我查看了一下路径。图片路径居然是localhost:17771/Home/~/imgs/111.jpg、请问为什么会多了个控制器Home的层级呢。我用@Url.content(),可以显示图片,但是我用ajax来切换路径的话,该怎么弄呢。请主要帮我解答一下,为什么会多了个Home层级,谢谢
问题已经解决,thanks everybody。。。
是不是路由设置默认的HOme控制器,或者是不是这个视图对应的就是Home控制器中的action?你仔细看看。
对,这个视图就是在Home控制器下的,但是我ajax给图片路径赋值是~/imgs/111.jpg,当我页面查看元素时,他为何就给解析成了localhost:17771/Home/~/imgs/111.jpg。按理应该是localhost:17771/~/imgs/111.jpg才对吧。把控制器的名,也给拼接上了
@一只小小小的菜鸟: 你贴出代码看一下。想象不出来
@1sa2sa:
<img id="img" src="" />
<button id="test">Test</button>
<script>
$('#test').on('click', function () {
$("#img").attr('src',"~/imgs/111.jpc");
})
</script>
点击test按钮,图片路径应该是~/imgs/111.jpc,对吧?但是图片没显示出来,所以我审查元素看到img的实际路径多了一个层级。Home/~/imgs/111.jpc。被解析为这样了。
@一只小小小的菜鸟: 看你写的是在界面上显示一个图片。
这样就可以显示出来!
你的地址中有控制器应该是请求控制器了。
我也是小白,在自己学习。可能说的不正确。
@1sa2sa: 所以说是波浪线惹的祸。~和/是代表不同的含义,必须搞懂他们的关系才行呢。