簡體   English   中英

在案例聲明中傳遞圖像文件 - Razor 頁面

[英]Passing image files in Case Statement - Razor Pages

我有幾個圖像(1,2,3,4),並想在我編寫的 switch 語句中傳遞這些圖像。 但是,我想將 C# 代碼推送到 Razor 頁面內容(Purchase.cshtml)

下面的代碼存在於我的 Purchase.cs 文件中

public void OnGet(int PizzaType, int PizzaCount)
{
    switch (PizzaType)
    {
            case 1:
                PizzaName = "BBQ Beef";
                PizzaCount = (int)(PizzaCount * 10.50);
                break;
            case 2:
                PizzaName = "Chicken and Pineapple";
                PizzaCount = (int)(PizzaCount * 8.50);
                break;
            case 3:
                PizzaName = "Pepperoni Feast";
                PizzaCount = (int)(PizzaCount * 9.0);
                break;
            case 4:
                PizzaName = "Vegeterian";
                PizzaCount = (int)(PizzaCount * 7.0);
                break;
    }

    ViewData["TotalPrice"] = PizzaCount;
    ViewData["PizzaType"] = PizzaName;
}

我如何做到這一點:我嘗試了以下但沒有結果。

<p>You purchased @ViewData["PizzaType"] </p>

@{
    int PizzaType = 1;
    string ImageFile;

    switch (PizzaType)
    {
        case 1:
            ImageFile = "<img src='~/images/1.jpg'>";
            break;
        case 2:
            ImageFile = "<img src='~/images/2.jpg'>";
            break;
        case 3:
            ImageFile = "<img src='~/images/3.jpg'>";
            break;
        case 4:
            ImageFile = "<img src='~/images/4.jpg'>";
            break;
    }
}

該代碼似乎工作正常,但它不會呈現您的img標簽,因為您只是將它保存在string類型的變量中。 要呈現string變量中的 html,可以使用Html輔助方法,如下所示:

int PizzaType = 1;
string ImageFile = ""; // Modify it to be empty as mvc would cause problem with unsigned variables.

switch (PizzaType)
{
    case 1:
        ImageFile = "<img src='~/images/1.jpg'>";
        break;
    case 2:
        ImageFile = "<img src='~/images/2.jpg'>";
        break;
    case 3:
        ImageFile = "<img src='~/images/3.jpg'>";
        break;
    case 4:
        ImageFile = "<img src='~/images/4.jpg'>";
        break;
}

if (!string.IsNullOrEmpty(ImageFile))
{
    @Html.Raw(ImageFile) @* And Render your html like this *@
}

或者您可以直接渲染它而不將其復制到您的變量中,如下所示:

@int PizzaType = 1;

@switch (PizzaType)
{
    case 1:
        <img src='~/images/1.jpg'>
        break;
    case 2:
        <img src='~/images/2.jpg'>
        break;
    case 3:
        <img src='~/images/3.jpg'>
        break;
    case 4:
        <img src='~/images/4.jpg'>
        break;
}

或者更簡短地說,您可以做的是使用您的PizzaType變量來生成src並擺脫switch語句。 這是您的switch語句的一個襯里:

<img src='~/images/@string.Format("{0}.jpg", PizzaType)'>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM