c# - 在案例声明中传递图像文件 - 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
标签,因为您只是将它保存在 type 的变量中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)'>
推荐阅读
- delphi - 如何使用 MessageDlg 禁用等待光标
- firebase - Value Provider 首次返回 null
- node.js - webpack-dev-server 在错误的端口上发出 sockjs 请求
- java - 我应该将 RestController 放在 spring boot 项目中的哪个位置
- javascript - How to trim in v-if vue js
- javascript - 无法识别通过 ReactJS 发送函数中的道具传递 websocket
- http - 隐身或私有模式 http 请求
- java - Java 128 位融合乘除法 - 有没有有效的算法?
- xamarin - 默认情况下,Xamarin 在哪里存储您的应用程序密钥库?
- python - 如何在烧瓶应用程序中嵌入一个情节地图框?