使用Razor和javascript在新窗口中打开图像

时间:2015-06-19 09:45:35

标签: javascript asp.net-mvc razor

我试图在新窗口中打开每个图像的新全尺寸图像。我使用此代码:

<script type="text/javascript">
function openImage(imageUrl) {
    window.open(imageUrl);
}

@foreach (var image in Model.Images)
{
        <img src="@Url.Action("Thumbnail", "Done", new { width = 150, height = 150, file = @imagen.filename })" alt="@imagen.filename" onclick="openImage('@Url.Content(ViewBag.Path + @imagen.filename)')" />
}

但是当我点击图片时使用它,它就无法打开任何东西。

你能帮我解决这个问题吗?

先谢谢你

由于错误代码

而编辑了openImage函数

2 个答案:

答案 0 :(得分:1)

解决方案是获取以这种方式保存图像的目录的URL:string url = Url.Content("~/Images");

答案 1 :(得分:0)

问题

中有许多不匹配的变量名称
string innerString = "Clicking Log Out will clear our cookies and log you out of Stack Overflow on all devices";
if (innerString.Length > 37)
{
    int startvalue = 38;
    while (startvalue < innerString.Length)
    {
        if (innerString[startvalue] == ' ')
        {
            innerString = innerString.Insert(startvalue, System.Environment.NewLine).TrimEnd();
            startvalue = startvalue + 38;
        }
        else
        {
            int i = innerString.LastIndexOf(" ", startvalue);
            startvalue = i++;
            innerString = innerString.Insert(startvalue, System.Environment.NewLine).TrimEnd();
            startvalue = startvalue + 38;
        }
    }
}

我认为这些都是这个问题的错别字。

最后imageUrl/imgUrl image/@imagen 可能遗漏了ViewBag.Path。要解决此问题,请不要连接(/)个网址部分,但请使用+,如:

System.IO.Path.Combine

您可以更改循环以创建到新窗口/标签的简单链接(这些也可以通过键盘导航),而不是使用javascript @Url.Content(Systemm.IO.Path.Combine(ViewBag.Path, image.filename))

onclick

如果这不起作用(我希望它不会为你赢得),请提供详细信息:

@foreach (var image in Model.Images)
{
    <a target="_blank" href='@Url.Content(ViewBag.Path + @image.filename)'>
        <img src="@Url.Action("Thumbnail", "Done", new { width = 150, height = 150 })" alt="@image.filename" />
    </a>
}