Не рекомендуется смешивать частичные фрагменты HTML с условным кодом C # / Razor.Код может повториться, но его гораздо легче читать и поддерживать позже.
Возможно, я не правильно уловил ваше намерение, но я могу прочитать это и понять, как условие влияет на вывод.
@foreach (var item in Model)
{
var HeaderImage = item.HeaderPath;
if (image != "")
{
var fileSavePath = Path.Combine(@"\\mainPage.com", "");
<div class="picGallery">
<img src="@Url.Content(item.HeaderPath)" alt="Image" />
<a href="@Url.Action("ViewPage", "Home")">
</a>
<div class="desc2">
<p style="font-size: 13;">@item.Text</p>
<p style="font-size: 13;">@item.text_2</p>
</div>
</div>
}
else
{
<div class="picGallery">
<img src="@Url.Content(item.HeaderPath)" alt="Image" />
<a href="@Url.Action("ViewPage", "Home")">
<div id="scanIcon">
<img src=img.png alt="imageView" />
<h1 style="font-size: 10px;">View Image</h1>
</div>
</a>
<div class="desc2">
<p style="font-size: 13;">@item.Text</p>
<p style="font-size: 13;">@item.text_2</p>
</div>
</div>
}
}
Вы можете сократить это.Но вы должны быть осторожны, чтобы избежать @if
вложенных блоков кода в html.Также становится все труднее понять, каким должен быть вывод.
@foreach (var item in Model)
{
var HeaderImage = item.HeaderPath;
<div class="picGallery">
<img src="@Url.Content(item.HeaderPath)" alt="Image" />
<a href="@Url.Action("ViewPage", "Home")">
@if (image != "")
{
// image exists
var fileSavePath = Path.Combine(@"\\mainPage.com", "");
<div> </div>
}
else
{
<div id="scanIcon">
<img src=img.png alt="imageView" />
<h1 style="font-size: 10px;">View Image</h1>
</div>
}
</a>
<div class="desc2">
<p style="font-size: 13;">@item.Text</p>
</div>
</div>
}