Обычно вы используете для этого модель представления, которая разлагается на (сопоставляется) с вашими моделями сущностей.Модель может выглядеть следующим образом:
public class MeamWithPlayersViewModel
{
public long ID { get; set; } // this ought to match the id parameter on the post
public string Name { get; set; }
public TeamPlayer[] Players { get; set; }
}
public class TeamPlayer
{
public long PlayerID { get; set; }
public string Name { get; set; }
}
На ваш взгляд - если вы добавите игроков для определенной команды -
@using (Html.BeginForm())
{
<p>Current Players</p>
@for (int i = 0; i < Model.Players.Length; ++i)
{
<p>Model.Players[i].Name
@Html.HiddenFor( model => model.Players[i].PlayerID )
</p>
}
<button class="add-player">Add Player</button>
<button class="save-button">Save</button>
}
Затем, используя некоторый JavaScript с AJAX, вы реализуетеВозможность добавить нового игрока из списка, полученного через AJAX.В обратном вызове из кода добавления игрока (привязанного к кнопке) вы добавите имя и другое скрытое поле с идентификатором игрока <input type="hidden" name="Players[n].PlayerID" value="_some_id_" />
, где n
- следующий номер в последовательности.Вы можете опустить n
в зависимости от ваших точных функций.