[英]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.