如何运行由字符串编写的@ Url.action

时间:2019-03-28 07:47:00

标签: c# asp.net-mvc

我正在尝试使用@Url.Action方法显示数据库中的图像。 html文档也位于数据库中,我使用@html.Raw函数对其进行渲染。

问题是当我渲染包含@Url.Action方法的html时,它只是在source参数中显示整个函数形状。我尝试过的代码如下。

private string ConvertImageSource(int articleID, string content // the html string)
{
    var imageCount = // counting number of image;
    for (int i = 0; i < imageCount; i++)
    {
        content = content.Replace($"<!{i + 1}>", $"@Url.Action('ShowImage','Articles',new{{articleID={ articleID },imageID={ imageID }}})");
    }

    return content;
}

public ActionResult ShowImage(int? articleID, int? imageID)
{
    var imageData = Encoding.ASCII.GetBytes(// get image string from database);
    return new FileStreamResult(new MemoryStream(imageData), "image/jpeg");
}

我想知道如何使其工作。有想法吗?

1 个答案:

答案 0 :(得分:0)

您可以在部分视图上使用该for循环。

看起来像..

@model MyContentModel
@for (int i = 0; i < model.ImageCount; i++){{
@Url.Action("ShowImage", "Articles", new {{ articleID ={ model.ArticleID },imageID ={ model.ImageID } }})}}