Я пытаюсь реализовать форму со списком параметров, которые могут быть добавлены и удалены пользователем. Подвох в том, что я хочу сделать это без javascipt . Это должно быть сделано в ASP.NET MVC 3.
У меня есть такая форма (упрощенный код, поэтому может быть не совсем правильно, я просто иллюстрирую то, что у меня есть):
@using (Html.BeginForm("New", "Films", FormMethod.Post, new { id = "NewFilmForm" }))
{
@if (Model.Any())
{
<!-- List of directors that have already been added -->
<div id="AddedDirectors">
@foreach (var director in Model)
{
<span>
@Html.Hidden("AddedDirectors", @director)
@Html.Raw(director)
<!-- JQuery button to remove director -->
<button class="deleteButton" type="button">x</button>
</span>
}
</div>
}
<!-- Interface for adding a new director -->
<div id="AddDirectorInterface">
<!-- Jquery show/hide add single director interface -->
<button type="button" id="AddDirectorButton">+   Add a director</button>
<div>
@Html.TextBox("AddDirector")
<!-- Post add button -->
<button name="SubmitButton" value="@Html.Encode(NewFilmActions.AddDirector)">Add</button>
</div>
</div>
<button type="submit" name="SubmitButton" value="@Html.Encode(NewFilmActions.Save)">Save film</button>
}
У меня здесь две кнопки отправки. Они обрабатываются с помощью оператора switch в контроллере и идентифицируются с помощью атрибута value, который устанавливается на основе перечисления NewFilmActions.
Нажатие кнопки со значением AddDirector отправляет сообщение в контроллер, добавляет имя, введенное в текстовом поле AddDirector, в модель и снова возвращает представление с формой, добавляя имя, указанное пользователем, в список директоров, которые уже добавлено (см. раздел с комментариями).
Я хотел бы добавить кнопку, позволяющую мне удалять имена, которые уже были добавлены пользователем ...
Я мог бы вставить одну кнопку, чтобы удалить все из них за один раз, но если это возможно, я бы хотел добавить отдельные кнопки. Я не могу понять, как это сделать.
Одним из решений, которое я могу придумать, было бы добавить имя к значению, а затем в операторе switch иметь значение по умолчанию и проверить, содержит ли значение указанное значение перечисления, но это звучит немного как неудачный подход.
Может ли кто-нибудь сказать мне, как это сделать, или указать мне учебник / объяснения о том, как это реализовать?
Просто чтобы подчеркнуть: я знаю, что это легко сделать с помощью JS, но я собираюсь сделать это полностью на стороне сервера для базовой функциональности и для моего личного образования.