Мой вопрос похож на Энграма здесь , но мой вопрос идет немного дальше. Я намерен работать так: у меня есть текстовое поле, спрашивающее, сколько записей собирается сделать пользователь. После того, как они вводят число, мне нужно создать еще столько текстовых полей, чтобы разрешить ввод записей (и затем повторить тот же процесс с этими текстовыми полями, но сначала пошаговые шаги ...) Я попытался собрать ключи в сообщении, но он только возвращает начальное текстовое поле с просьбой указать количество записей. Я все еще пытаюсь понять MVC, и учебники / видео до сих пор не углубляются в это глубоко. С другой стороны, я знаю, что это, вероятно, что-то, что я мог бы обработать, используя JQuery, но я все еще застрял бы в той же ситуации.
Это контроллер, который я использую:
[AcceptVerbsAttribute("POST")]
public ActionResult Create(int tbxNumberOfExercises)
{
ViewData["number"] = tbxNumberOfExercises;
foreach (var key in Request.Form.Keys)
{
string keyString = key.ToString();
if (keyString.StartsWith("tbox_exercise", StringComparison.OrdinalIgnoreCase))
{
string recNum = keyString.Substring(13, keyString.Length - 13);
string approvedKey = Request.Form["tbox_exercise" + recNum];
int number;
int.TryParse(approvedKey, out number);
}
}
return View("Create");
}
А это мой aspx:
<form action="/CreateWorkout/Create" method="post">
Number of Exercises:
<%= Html.TextBox("tbxNumberOfExercises") %>
<br />
<br />
<input type="submit" value="Set Exercise Number" />
</form>
<% if (ViewData["number"] != null)%>
There are this many:<%=Html.Encode(ViewData["number"])%>
<br />
and this line should show up
<% if (ViewData["number"] != null)
{
int max = (int)ViewData["number"];
for (int i = 0; i < max; i++)
{%>
<br />
<br />
<%= Html.TextBox("tbox_exercise" + i) %>
<% }
} %>
<% if (ViewData["s"] != null) %>
<%=Html.Encode(ViewData["s"]) %>
Есть ли что-то, что я упускаю из виду, не понимаю, или я должен бросить, пока я нахожусь, потому что кажется, что я никогда не получу это?
Заранее спасибо за любую помощь - я просто стараюсь учиться как можно больше.