为什么razor html不起作用?
不工作
@if (Model.Devices.Any())
{
foreach (var device in Model.Devices)
{
Html.Partial(MVC.Devices.Refrigerator.Views.GroupedRefrigerators, device);
}
}
else
{
<div class="alert alert-info">
@(Html.Raw(xxxx)
</div>
}
WORKS
@foreach (var device in Model.Devices)
{
@Html.Partial(MVC.Devices.Refrigerator.Views.GroupedRefrigerators, device);
}
答案 0 :(得分:4)
当您在代码块中时,调用Html.Partial
只会将结果字符串返回到内存。但是你没有存储它或用它做任何事情。
然而,调用@Html.Partial
会将结果字符串注入页面。
您可以通过添加一些html元素来修复第一个块以包围部分:
foreach (var device in Model.Devices)
{
<div>
@Html.Partial(MVC.Devices.Refrigerator.Views.GroupedRefrigerators, device);
</div>
}
正如@Richard指出的那样,你也可以使用@:
或<text>
代替<div>
来进行渲染。