【发布时间】:2017-04-26 20:58:31
【问题描述】:
作为我的第一个项目的一部分,我必须使用 MVC 5 在视图中实现图像和视频显示。它正在工作,我对这一成就感到非常满意,但是必须进行一些改进,你会如何建议改进以下代码:
为了显示图片,我使用了以下代码:
<div style="float: none; margin: auto auto 30px auto ;height: 280px; width: 400px; ">
<div id="imageContainer">
<img src="~/Images/@Html.Raw(Model.ImagePath)" />
</div>
</div>
在我不提供路径的情况下,此容器保持为空,但在页面上仍显示为带有图像图标的空块,表明该图像应该在这里......我怎样才能摆脱它,如果我不想在这个视图中显示图片?
视频容器的情况相同,我只是使用嵌入的 youtube 链接作为视频的Videolink:
<iframe src=@Html.Raw(Model.VideoLink) width="560" height="315" frameborder="1" align="middle" display:block style="margin:auto auto 30px auto"></iframe>
如果我提供Videolink - 它工作正常,如果我不提供,我有一个容器显示错误。如果没有输入,有没有办法简单地隐藏这些容器?
我会告诉你我设置它的方式,这一切都在一个班级Media
public class Media
{
public int Id { get; set; }
public string title { get; set; }
[Required, StringLength(512)]
public string description { get; set; }
[Required]
[AllowHtml]
public string body { get; set; }
public string ImagePath { get; set; }
public string VideoLink { get; set; }
public string Source { get; set; }
public TagsEnum TagsEnum { get; set; }
[Column(TypeName = "datetime2")]
[DisplayFormat(DataFormatString = "{0:dd MMMM , yyyy HH:mm}", ApplyFormatInEditMode = true)]
public DateTime? NewsDate { get; set; }
}
更新
这就是我认为使用 Sam 的建议应该看起来的样子,对吧?如果是这样,它仍然没有给出正确的结果
@if (!string.IsNullOrEmpty(b.ImagePath))
{
}
else
{
<div style="float: right; margin: 10px 10px 25px 25px; height: 100px; width:150px">
<div id="imageContainer">
<img src="~/Images/@Html.Raw(b.ImagePath))" style='height: 100%; width: 100%;' />
</div>
</div>
}
【问题讨论】:
-
@if(!string.IsNullOrEmpty(model.property)) -
看起来很有希望,谢谢!但它会去吗,查看?控制器?我是 ASP.Net 的初学者
-
它以
@为前缀。这使它成为 Razor 语法。 -
帮了大忙,谢谢!
标签: c# asp.net-mvc-5