2013-07-23 44 views
-1

大家好以下是我的按需飼料型號代碼將視圖中的對象列表傳遞給控制器​​錯誤?

public class OndemandFeedModel 
{ 
    public CountryModel Country { get; set; } 
    public FieldSelectModel Fields { get; set; } 
    public FilterSelectModel Filters { get; set; } 
} 


public class FieldSelectModel 
    { 
    public List<FieldGroup> FieldGroup { get; set; } 
    } 


public class FieldGroup 
{ 
    public string GroupName { get; set; } 
    public List<FieldModel> Fields { get; set; } 
} 

public class FieldModel 
{ 
    public bool IsSelected { get; set; } 
    public int FieldId { get; set; } 
    public string FieldName { get; set; } 
    public string UserDefinedFieldName { get; set; } 
    public string FieldGroup { get; set; } 
    public string Country { get; set; } 

} 

,當我打Httppost它會給以下錯誤

enter image description here enter image description here

我不知道錯在哪裏。任何人都可以幫我

+0

你在哪裏期望'Fields'屬性被填充? –

+0

默認模型聯編程序將通過索引綁定..如果您在視圖中使用索引呈現它們,例如:for..loop。 –

+0

@JonSkeet其實我的觀點就像http://stackoverflow.com/questions/17746591/how-to-get-the-old-and-user-defined-name-for-the-checked-values-in-mvc- asp-net這個和一旦我點擊提交按鈕,我必須得到選定的字段,並且必須形成一個JSON來調用REST – Backtrack

回答

0

我想你需要看Request.Form.AllKeys看看發佈了什麼。

您的HTML輸入字段應該映射模型對象圖的分層命名,或者模型綁定器不會將其綁定到模型。

另外,作爲開始,發佈集合時,您可以發佈隱藏集合的開始索引(如果它不是0)。

0

根據上面的代碼[HttpPost]不應該與索引方法 集成,因爲索引方法應該總是[httpGet]否則它會給404錯誤。在頁面加載時,它總是提供空值,如前所述。 你可以從下面的例子中獲得幫助:

interface IProductRepository 
{ 
IEnumerable<Product> GetAll(); 
} 

public class Product 
{ 
    [Display(Name = "Product ID")] 
    public int ID { get; set; } 

    [Display(Name = "Product Name")] 
    public string Name { get; set; } 

    [Display(Name = "Product Category")] 
    public string Category { get; set; } 

    [Display(Name = "Product Price")] 
    public decimal Price { get; set; } 
} 

public class ProductRepository 
{ 
    private List<Product> products = new List<Product>(); 

    public ProductRepository() 
    { 
     products.Add(new Product { ID = 1, Name = "xyz", Category = "Cat A", Price = 1 }); 
     products.Add(new Product { ID = 2, Name = "xyz", Category = "Cat B", Price = 100 }); 
     products.Add(new Product { ID = 3, Name = "xyz", Category = "Cat C", Price = 1000 }); 
     products.Add(new Product { ID = 4, Name = "xyz", Category = "Cat D", Price = 10000 }); 
    } 

    public IEnumerable<Product> GetAll() 
    { 
     return products; 
    }   

} 

    public ActionResult Index(Product model) 
    { 
     repository.GetAll(); 
     //put foreach() here... 
     return View(); 
    } 
+0

@Nithin索引頁不能有HTTPPOST? – Backtrack

+0

HttpPost屬性不應該用Index方法實現。索引方法應始終爲HttpGet '[HttpGet] public ActionResult Index(Product model) { repository.GetAll(); //把foreach()放在這裏... return View(); }' –

相關問題