Есть несколько возможностей. Одним из них является использование JavaScript для чтения всех значений:
function getValues() {
const values = [...document.querySelectorAll('input')]
.filter(a => /^n[0-9]{1,}$/.test(a.getAttribute('id')))
.map(a => a.value)
.join(',');
console.log(values);
// TODO Make some operation like ajax
}
<input type="text" id="n1">
<input type="text" id="n2">
<input type="text" id="n3">
<button onclick="getValues()">Post</button>
Другой способ - сохранить ссылку на форму и обработать в бэкэнде:
@{
ViewBag.Title = "Media";
}
<form action="Media" method="post">
<h2>Media de n números</h2>
Ingrese el número de elementos:<br />
<input type='text' id='numero' name='numero' />
<button type="submit" id="button" name="button" >Enviar</button>
</form>
<form action="Test" method="post">
@Html.Raw(ViewBag.elements)
<!-- store amount of elements -->
<input type="hidden" name="myControl" value="@ViewBag.n" />
</form>
Контроллер:
[HttpPost]
public ActionResult Media(int numero) {
// (...)
ViewBag.n = numero;
// (...)
}
[HttpPost]
public ActionResult Test(int n) {
// Example of how read posted values
for (var i = 0; i < n; i++) {
var valueN = Request.Form["n" + i.ToString()];
}
}