Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
动态图像显示-javascript错误的url读取_Javascript_Html_Asp.net - Fatal编程技术网

动态图像显示-javascript错误的url读取

动态图像显示-javascript错误的url读取,javascript,html,asp.net,Javascript,Html,Asp.net,我正在编写ASP.NETCore视图,需要在其中动态显示img。 我正在传递控制器中生成的@Model.AvatarUrl,,以查看并显示为 defaultPreviewContent: '<img src="\\@Model.AvatarUrl" alt="Your Avatar" style="width:160px">', 现在,浏览器不想显示它,因为它的读取方式是“\Uploads2wrcbyx.buf.jpg”,所以我猜是读取了\n特殊字符,而我的url是错误的。 如何解

我正在编写ASP.NETCore视图,需要在其中动态显示img。 我正在传递控制器中生成的
@Model.AvatarUrl,
,以查看并显示为

defaultPreviewContent: '<img src="\\@Model.AvatarUrl" alt="Your Avatar" style="width:160px">',
现在,浏览器不想显示它,因为它的读取方式是
“\Uploads2wrcbyx.buf.jpg”
,所以我猜是读取了\n特殊字符,而我的url是错误的。
如何解决这个问题?更改
@Model.AvatarUrl
确实不是一个选项,因为它会导致很多问题。

问题是您的字符串被取消了两次替换,一次在服务器端,一次在客户端。浏览器从“\\Uploads\\n2wrcbyx.buf.jpg”获得的内容是“\Uploads\n2wrcbyx.buf.jpg”,然后\n被解释为新行

对我有效的方法是在视图中将“\\”替换为“\\\”

在我的模型中

public string AvatarUrl { get { return "\\Uploads\\n2wrcbyx.buf.jpg"; } }
在我看来

<script type="text/javascript">
    var model = {
      defaultPreviewContent: '<a href="\\@Model.AvatarUrl.Replace("\\", "\\\\")">hover</a>'
    };
    document.getElementById('target').innerHTML = model.defaultPreviewContent;
</script>
如果您想使用Razor从服务器根目录生成url,它是:

defaultPreviewContent: '<a href="@Url.Content(@Model.AvatarUrl.Replace("\\", "\\\\"))"

你试过用斜杠“/”而不是反斜杠“\”?是的,正斜杠有效,但我想要的是反斜杠。谢谢。这似乎是一个很好的答案,但是,我将我的实现更改为使用finally/,所以我没有问题。
http://uploads/n2wrcbyx.buf.jpg
defaultPreviewContent: '<a href="@Url.Content(@Model.AvatarUrl.Replace("\\", "\\\\"))"
http://localhost:7669/Uploads/n2wrcbyx.buf.jpg