私はこの厄介な問題に苦しんでいます。モデル、エディター、コントローラーがあります。
public class TeamDetails{
public int SeasonId{get;set;}
public TeamDetails()
{
//need SeasonId to be populated already from form here, but it won't yet.
}
public TeamDetails(int seasonId)
: this()
{
//load dropdownlist using seasonId from repository
}
}
//Controller
//get method gets seasonId from querystring.
public ViewResult Create(int seasonId)
{
// calls the parameterized constructor for TeamDetails
// which uses seasonId to populate a dropdownlist from db repo.
var teamDetails = new TeamDetails(seasonId);
}
[HttpPost]
public PartialViewResult Create(TeamDetails model)
{
// no such luxury here to call the parameterized
// Constructor for model. additional logic.
}
//editor
@using (Ajax.BeginForm("Create", "Team", options))
{
@Html.ValidationSummary(true)
@Html.HiddenFor(model => model.SeasonId)
//additional fields
}
コンストラクターで必要なため、TeamDetailsコンストラクターがヒットするまでに非表示フィールドのSeasonIdが既に入力されている必要があります。ただし、MVCがSeasonIdをオブジェクトに割り当てる前にコンストラクターが呼び出されるため、これは明らかに発生しません。これを回避する方法はありますか?
ありがとう
リズ