Как запустить @ Url.action написано строкой - PullRequest
2 голосов
/ 28 марта 2019

Я пытаюсь показать изображение из базы данных методом @Url.Action.HTML-документ также находится в базе данных, и я отрисовываю его с помощью функции @html.Raw.

Проблема заключается в том, что при рендеринге HTML-кода, включающего метод @Url.Action, он просто показывает всю форму функции в исходном параметре.Код, который я попробовал, приведен ниже.

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");
}

Я хотел бы знать, как заставить его работать.Есть идеи?

Ответы [ 2 ]

0 голосов
/ 01 апреля 2019

Спасибо за ответ.Я нашел решение сам.Вместо функции @ Url.Action я поставил URL-адрес, и он работает.

private string ConvertImageSource(int articleID, string content)
    {
        var imageCount = content.Split(new string[] { "img " }, StringSplitOptions.None).ToList().Count - 1;

        for(int i = 0; i < imageCount; i++)
        {
            content = content.Replace($"<!{i + 1}>", $"/Articles/ShowImage?articleID={ articleID }&imageID={i + 1}");
        }

        return content;
    }
0 голосов
/ 28 марта 2019

Вы можете использовать это для цикла при частичном просмотре.

Похоже ..

@model MyContentModel
@for (int i = 0; i < model.ImageCount; i++){{
@Url.Action("ShowImage", "Articles", new {{ articleID ={ model.ArticleID },imageID ={ model.ImageID } }})}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...