2016-10-04 29 views
0

我使用Form Post方法在我的MVC應用程序中將數據提交給控制器。 我的MVC應用程序控制器方法接受ViewModel。 我已經添加了其他viewModel的新列表,我想將數據傳遞給新添加的viewmodel。如何在提交表單發佈方法之前將複雜數據類型添加到查看模型

示例代碼(沒有完全執行)

控制器現有代碼

public ActionResult AddProduct(ProductViewModel productViewModel) 
{ 
    //some operation 
} 

public class ProductViewModel 
{ 
    Branch_Product_Taxes = new List<Branch_Product_TaxesViewModel>(); 
} 

//viewmodel 

$('#ProductForm').submit(); //javascript form submit method

var ObjectList = new Array()

現在我已經添加對象列表中對象列表 我想通過此列表控制器

+0

請修復您的代碼標記 - 現在它不可讀 –

回答

1

您需要根據您的複雜數據類型創建隱藏元素 考慮以下問題 如果您需要發佈員工列表與名稱等屬性,然後通過以下代碼。

您的視圖模型類似

public class ProductViewModel 
{ 
    public IList<Employees> = new List<Employees>(); 
} 

JavaScript代碼

var html = '<input type="hidden" name="Employees[0].Name" value="Employee1"/>'; 
    html+='<input type="hidden" name="Employees[0].Designation" value="Des1"/>'; 
    html+='<input type="hidden" name="Employees[1].Name" value="Employee2"/>'; 
    html+='<input type="hidden" name="Employees[1].Designation" value="Des2"/>'; 
    $('#ProductForm').append(html); 
    $('#ProductForm').submit(); 

你會得到的兩個記錄的清單(0和1)指數。

您可以使用for循環並動態生成隱藏的html,並在Form提交之前添加它。

0

您需要定義列表,你逝去的視圖模型內部屬性,默認情況下ModelBinder的不考慮領域,如

Branch_Product_Taxes = new List<Branch_Product_TaxesViewModel>(); 

你需要定義屬性就像

public IList<Branch_Product_TaxesViewModel> Branch_Product_Taxes { get; set; } 
+0

好的,我會做。但是如何在submit()之前將我的列表發送到表單 – Prasad