2017-04-21 72 views
1

C#模型類表單數據在asp.net芯MVC控制器模型

public class SubCategoryTwoViewModel 
{ 
    public long Id { get; set; } 
    public string SubCatTwoName { get; set; } 
    public CategoryViewModel Category { get; set; } 
    public SubCategoryOneViewModel SubCatOne { get; set; } 
    public string PictureUrl { get; set; } 
    public List<IFormFile> File { get; set; } 
    public UserViewModel AddedBy { get; set; } 
    public DateTime AddedOn { get; set; } 
    public UserViewModel Updated_By { get; set; } 
    public DateTime? UpdatedOn { get; set; } 
    public bool Active { get; set; } 
} 

這裏沒有序列號是CategoryViewModel

public class CategoryViewModel 
    { 
     public long CategoryId { get; set; } 
} 

這裏是控制器的方法

[HttpPost] 
public JsonResult AddEditSubCategoryTwo(SubCategoryTwoViewModel model) 
{ 
} 

這裏被使用表單數據序列化數據的ajax調用發送給控制器方法。

var ajaxUrl = ApplicationRootUrl("AddEditSubCategoryTwo", "Category"); 
var formData = new FormData(); 
var totalFiles = document.getElementById("subCatFile").files.length; 

for (var i = 0; i < totalFiles; i++) { 
    var file = document.getElementById("subCatFile").files[i]; 
    formData.append("File", file); 
} 

formData.append('SubCatTwoName', self.subCatTwoName()); 
var category = { 
    CategoryId: self.selectCategory() 
}; 

formData.append('Category', category); 
var subCatOne= { 
    SubCategoryOneId: self.selectCategorytwo() 
}; 

formData.append('SubCatOne', subCatOne); 
formData.append('Active', self.active()); 

$.ajax({ 
    type: "POST", 
    contentType: false, 
    processData: false, 
    url: ajaxUrl, 
    data: formData, 
    dataType: "json", 
    success: function (data) { 
    } 
}); 

我,我得到一些現場數據的控制器,但在Java腳本值不是序列化到控制器模型。

這裏是樣品 Data of some field

在屏幕截圖我收到類別& SubCatOne場爲空的屏幕截圖。但活動,SubCatTwoName和File字段已收到值。我想要在控制器模型對象中獲得類別& SubCatOne值。我怎樣才能做到這一點。

+0

您正在將'javascript'對象追加到'FormData'鍵''SubCatTwoName''和''Category''。你想在服務器上鍵入什麼?「SubCatTwoName」和「Category」? – guest271314

+0

我已收到服務器端的SubCatTwoName值。但是,我沒有收到類別的價值。 –

+0

'console.log(category)'log? – guest271314

回答

1

試圖直接添加對象不起作用。相反,您可以通過添加具有正確名稱的嵌套字段(使用點分隔屬性層次結構)來使用模型綁定。例如

formData.append('Category.CategoryId', self.selectCategory()); 
+0

謝謝..它的工作 –

+0

@Paul Hiles,這是否意味着我們不能發送formData中的json對象,並通過模型在asp.net中正確處理它核心行動? – MistyK

相關問題