視圖模型看起來是這樣的:MVC HttpPost強類型型號空
public class AsmenysInfoViewModel2
{
public asmenys_info Asmenys_info { get; set; }
public List<miestai> Miestai { get; set; }
public string Test { get; set; }
}
而且還有兩個動作。獲取和發佈。
public ActionResult Index(long? id)
{
var model = new AsmenysInfoViewModel2();
model.Test = "Test";
model.Asmenys_info = BllFactory.DalFactory.AsmenysInfoDal.GetById(id.Value);
return View(model);
}
[HttpPost]
public ActionResult Index(AsmenysInfoViewModel2 asmenys_info)
{
var model = asmenys_info;
return View(model);
}
而我的看法是這樣的:
@model MODELS.AsmenysInfoViewModel2
@{
ViewBag.Title = "Index";
}
@using (Html.BeginForm("Index", "AsmenysInfo", FormMethod.Post))
{
@Html.ValidationSummary()
@Html.TextBoxFor(m => m.Asmenys_info.adresas)
<input type="submit" value="Išsaugoti" />
}
不要緊,如果我用EditorFor或TextBoxFor - 結果是一樣的。發佈時我的模型屬性「Asmenys_info」始終爲空。如果我的類AsmenysInfoViewModel2不包含asmenys_info類型的屬性,並將只包含「字符串,int等」(沒有強類型) - 它會工作。 我的問題是:
如何發佈視圖模型,其中強類型的屬性,張貼不會是null?
嘗試改變'公衆的ActionResult指數(asmenys_info asmenys_info)'來'公ActionResult Index(AsmenysInfoViewModel2 asmenys_info)' –
同樣的問題。我在這裏發佈錯誤的代碼。這就像你說的。我編輯我的帖子來糾正導致我問題的代碼。我認爲問題是,在發佈沒有asmenys_info類的實例,所以它不能設置m.Asmenys_info.adresas屬性。但我不知道如何解決它。 – user2179088
根據我的經驗,複雜模型表單發佈是不可能的。儘管你可以通過在jquery中構建一個json對象然後發佈表單來實現。 –