Во-первых, я обнаружил в вашей форме, что кнопка отправки и таблица не в той же форме, поэтому при нажатии кнопки данные таблицы не будут переданы. И тогда привязка модели неверна, вы можете использовать name="LocationViews[@i].xxx"
для привязки данных. Вот демонстрация работы: cs html:
<div class="col-md-offset-4 justify-content-center">
<h1 style="color:yellowgreen">Edit Locations</h1>
</div>
<br />
<br />
<br />
<form method="post">
<table class="table">
<tr class="text-light" style="border-top: hidden !important">
<td>ID</td>
<td>Host</td>
<td>Datacenter</td>
<td>Cluster</td>
<td>Location Name</td>
<td>City</td>
<td>State</td>
<td>Bandwidth</td>
</tr>
@for (int i = 0; i < Model.LocationViews.Count(); i++)
{
<tr>
<td><input type="checkbox" asp-for="LocationViews.ElementAt(i).isChecked" name="LocationViews[@i].isChecked" /></td>
<td class="text text-light">
@Model.LocationViews.ElementAt(i).vHost_id
<input type="hidden" asp-for="LocationViews.ElementAt(i).vHost_id" name="LocationViews[@i].vHost_id" />
</td>
<td class="text text-light">
@Model.LocationViews.ElementAt(i).Host
<input type="hidden" asp-for="LocationViews.ElementAt(i).Host" name="LocationViews[@i].Host" />
</td>
<td class="text text-light">
@Model.LocationViews.ElementAt(i).Datacenter
<input type="hidden" asp-for="LocationViews.ElementAt(i).Datacenter" name="LocationViews[@i].Datacenter" />
</td>
<td class="text text-light">
@Model.LocationViews.ElementAt(i).Cluster
<input type="hidden" asp-for="LocationViews.ElementAt(i).Cluster" name="LocationViews[@i].Cluster" />
</td>
<td class="text text-light">
@Model.LocationViews.ElementAt(i).name
<input type="hidden" asp-for="LocationViews.ElementAt(i).name" name="LocationViews[@i].name" />
</td>
<td class="text text-light">
@Model.LocationViews.ElementAt(i).city
<input type="hidden" asp-for="LocationViews.ElementAt(i).city" name="LocationViews[@i].city" />
</td>
<td class="text text-light">
@Model.LocationViews.ElementAt(i).state
<input type="hidden" asp-for="LocationViews.ElementAt(i).state" name="LocationViews[@i].state" />
</td>
<td class="text text-light">
@Model.LocationViews.ElementAt(i).bandwidth
<input type="hidden" asp-for="LocationViews.ElementAt(i).bandwidth" name="LocationViews[@i].bandwidth" />
</td>
<td>
<!--<a class="btn btn-dark"
asp-page="/View/EditAssessment" asp-route-assessmentId="">
<i class="glyphicon glyphicon-pencil"></i>
</a>-->
</td>
</tr>
}
</table>
<input type="submit" value="Submit" class="btn btn-dark text-light" />
</form>
cs html .cs:
public class EditLocationsModel : PageModel
{
[BindProperty(SupportsGet = true)]
public IEnumerable<LocationView> LocationViews { get; set; }
public ActionResult OnGet()
{
List < LocationView > list = new List<LocationView>();
LocationView l1 = new LocationView { isChecked = false, vHost_id = 1, city = "city1", Host = "h1", Cluster = "c1", Datacenter = "d1", name = "location1", state = "state1", bandwidth = "b1" };
LocationView l2 = new LocationView { isChecked = true, vHost_id = 2, city = "city2", Host = "h2", Cluster = "c2", Datacenter = "d2", name = "location2", state = "state2", bandwidth = "b2" };
list.Add(l1);
list.Add(l2);
LocationViews = list;
return Page();
}
public void OnPost() {
}
}
Результат : введите описание изображения здесь