我一直在努力解決這個令人討厭的問題。我有一個模型,編輯器和控制器:如何在調用構造函數之前將表單值分配給模型
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
}
我需要有SeasonId從隱藏字段已經被時間TeamDetails構造填充被擊中,因爲我需要在構造函數中。但是,這顯然不會發生,因爲在MVC有機會將SeasonId指定給對象之前調用構造函數。任何方式我可以解決這個問題?
感謝
里茲
GET方法是什麼樣的? – Chris 2012-07-25 19:21:44
我已編輯以包含GET方法。 – Riz 2012-07-25 19:25:16
我編輯了一些更清晰的圖片。 – Riz 2012-07-25 19:28:49