Reputation: 7
For some reason, the input tags aren't displayed if I put them in a foreach loop.
@foreach (var item in Model.KhuyenMais) {
<input class="form-control" name="SoLuongKM" value="@item.SoLuong" />
}
Upvotes: 0
Views: 146
Reputation: 533
I am assuming that your model does not have the values Model.KhuyenMais
.
See the following code snippet:
.CSHTML file code
@foreach (var item in MyWebApp.Controllers.MyClass.AssetList )
{
<input class="form-control" name="SoLuongKM" value="@item.AssetName" />
}
C# Controllers file code
public ActionResult TreeListExport()
{
List<Asset> oAsset = new List<Asset>();
oAsset.Add(new Asset {AssetId =1, AssetName ="computer"});
oAsset.Add(new Asset {AssetId =1, AssetName ="keyboard"});
oAsset.Add(new Asset {AssetId =1, AssetName ="mouse"});
MyClass.AssetList = oAsset;
return View();
}
Upvotes: 0
Reputation: 1635
You can check and display when the model don't have item
@if(Model.KhuyenMais != null && Model.KhuyenMais.Count > 0)
{
foreach (var item in Model.KhuyenMais)
{
<input class="form-control" name="SoLuongKM" value="@item.SoLuong"/>
}
}
else
{
<span> There is no result </span>
}
Upvotes: 1
Reputation: 18975
It is correct syntax and always render input tag.
You need check Model.KhuyenMais
may be its length is zero.
<p>KhuyenMais count: @Model.KhuyenMais.Count</p>
@foreach (var item in Model.KhuyenMais) {
<input class="form-control" name="SoLuongKM" value="@item.SoLuong" />
}
Upvotes: 0