如果在@ {}中的条件在ASP.NET MVC中 Razor视图
我正在做一个简单的事情来在ASP.NET MVC视图中呈现图像。如果条件需要使用c#。我使用如下:如果在@ {}中的条件在ASP.NET MVC中<dd> Razor视图
<dd>
@{ byte[] photo = @Model.Photo;
string imageSrc = null;
if (photo != null) { }
//Logic
}
<img src="" alt="Image" />
</dd>
我收到异常{是必需的。任何帮助?我相信,我不需要任何括号
从there:
<img src="data:image/png;base64,@Convert.ToBase64String(Model.Photo, Base64FormattingOptions.None)"
alt="Image" />
注意转换字节数组的base64字符串(Convert.ToBase64String
),它给你你想要什么。
这是一个很好的答案。但是我并没有进行内联转换,因为我需要从照片长度中减去78。照片来自Microsoft Northwind数据库,它是一个OLE对象。任何我们可以从78开始不是在内嵌转换的0? – 2014-09-22 19:35:48
当我试着低于传递偏移值时,它会抛出无效参数 –
2014-09-22 19:43:59
好这个工作
<img src="data:image/png;base64,@Convert.ToBase64String(Model.Photo,78,Model.Photo.Length-78 ,Base64FormattingOptions.None)"
alt="Image" />
您可能想将我的答案标记为接受。另外,我建议在视图中不要对视图模型做任何事情,并在控制器中执行此操作。 – AgentFire 2014-09-22 20:05:27
是的,这是下一个。我将重构这个 – 2014-09-23 01:16:49
有时转换'base64'如图所示在这个答案在IE中创建问题...只是检查它... – 2014-09-23 06:29:37
@Debug_mode,我建立一个简单的MVC应用程序,它为我尝试这样做。
<dd>
@{
byte[] photo = Model.Photo;
string imageSrc = null;
if (photo != null) { }
//Logic
}
<img src="" alt="Image" />
</dd>
注:如果我们使用C#块@ {..}我们不想使用“@”来访问@ {....} C#块内Sever的性质,即它应该是简单的模型。照片代替@ Model.Photo。
从@ Model.Photo ;,删除@它应该工作。 – Adithya 2014-09-22 19:48:57
不,它不会。我试过 – 2014-09-22 19:51:58