asp.net mvc - Proste powiązanie modelu MVC nie działa

Translate

Okej, to musi być coś głupiego jak pudełko kamieni, co robię źle, ale nie mogę tego znaleźć.

Akcja MVC:

[AcceptVerbs(HttpVerbs.Post)]
public virtual ActionResult Create(BatchCreateViewModel createModel)
{
    return RedirectToRoute(MVC.Home.Display());
}

BatchCreateViewModel:

public class BatchCreateViewModel
{
    bool searchAVM;
    bool searchBPO;
    bool searchAppraisal;
    int transactionAge;
    string Description;
    string uploadfile;
}

Na stronie widoku znajdują się kontrolki o nazwach „searchAVM”, „searchBPO”, „searchAppraisal”, (pola wyboru) „transactionAge” (zestaw przycisków radiowych z wartościami całkowitymi) i „description” (pole tekstowe)

Kiedy przerywam przy wejściu do "Create", createModel jest tam, ale ma wszystkie wartości domyślne (null dla łańcuchów, false dla logicznych, 0 dla int). Jeśli zbadam Request.Form, wartości tam są, ale po prostu nie trafiają do modelu.

Co ja robię źle?

(To jest w MVC 2, Framework 4.)

This question and all comments follow the "Attribution Required."

Wszystkie odpowiedzi

Translate

Twój model widoku powinien mieć właściwości automatyczne, a nie zmienne publiczne. Już mnie złapał!

Więc powinno być:

public class BatchCreateViewModel 
{ 
    public bool searchAVM {get;set;}
    public bool searchBPO {get;set;}
    public bool searchAppraisal {get;set;}
    public int transactionAge {get;set;}
    public string Description {get;set;}
    public string uploadfile {get;set;}
} 
Źródło
Leave a Reply
You must be logged in to post a answer.
O autorze