獲取傳遞給部分視圖的嵌套復雜對象的值。我有一個ViewModel,它的成員之一是一個復雜的對象。復雜對象有4個屬性(所有字符串)。我正在嘗試創建一個可重用的部分視圖,在其中我可以傳遞復雜的對象,并讓它為其屬性生成帶有html幫助器的html。一切都很好。但是,當我提交表單時,模型綁定器沒有將值映射回ViewModel的成員,因此在服務器端沒有得到任何信息。如何將用戶鍵入的值讀入復雜對象的html幫助程序中。視圖模型public class MyViewModel{
public string SomeProperty { get; set; }
public MyComplexModel ComplexModel { get; set; }}MyComplexModelpublic class MyComplexModel{
public int id { get; set; }
public string Name { get; set; }
public string Address { get; set; }
....}控制器public class MyController : Controller{
public ActionResult Index()
{
MyViewModel model = new MyViewModel();
model.ComplexModel = new MyComplexModel();
model.ComplexModel.id = 15;
return View(model);
}
[HttpPost]
public ActionResult Index(MyViewModel model)
{
// model here never has my nested model populated in the partial view
return View(model);
}}視點@using(Html.BeginForm("Index", "MyController", FormMethod.Post)){
....
@Html.Partial("MyPartialView", Model.ComplexModel)}局部視圖@model [email protected](m => m.Name)...如何在表單提交時綁定這些數據,以便父模型包含從部分視圖輸入到web表單中的數據?謝謝編輯:我發現我需要添加“ComplexModel”。到部分視圖(TextBox)中的所有控件名稱,以便它映射到嵌套對象,但我不能將ViewModel類型傳遞給部分視圖以獲得額外的層,因為它需要是通用的,才能接受幾種ViewModel類型。我可以用javascript重寫name屬性,但在我看來,這似乎過于簡單了。我還能怎么做呢?編輯2:我可以用新的{name=“ComplexModel.Name”}靜態地設置name屬性,所以我認為我在做生意,除非有人有更好的方法?
3 回答

ABOUTYOU
TA貢獻1812條經驗 獲得超5個贊
- 3 回答
- 0 關注
- 436 瀏覽
添加回答
舉報
0/150
提交
取消