Próbuję nauczyć się MVC2, C# i Linq dla Entities w jednym projekcie (tak, jestem szalony) i mam pewne problemy z DropDownListFor i przekazywanie do niego SelectList.ASP.Net MVC2 DropDownListFor
Jest to kod w moim kontrolera:
public ActionResult Create()
{
var Methods = te.Methods.Select(a => a);
List<SelectListItem> MethodList = new List<SelectListItem>();
foreach (Method me in Methods)
{
SelectListItem sli=new SelectListItem();
sli.Text = me.Description;
sli.Value = me.method_id.ToString();
MethodList.Add(sli);
}
ViewData["MethodList"] = MethodList.AsEnumerable();
Talkback tb = new Talkback();
return View(tb);
}
i mam kłopoty próbuje uzyskać DropDownListFor
wziąć MethodList
w ViewData
. Kiedy próbuję:
<%:Html.DropDownListFor(model => model.method_id,new SelectList("MethodList","method_id","Description",Model.method_id)) %>
błędy to z następującym komunikatem
DataBinding: 'System.Char' does not contain a property with the name 'method_id'.
wiem, dlaczego tak jest, jak to jest przy MethodList
jako ciąg, ale nie mogę dowiedzieć się, jak dostać się to wziąć SelectList
. Jeśli wykonuję następujące czynności z normalnym DropDownList
Jest to całkiem zadowolony z tego.
Czy ktoś może pomóc?
Klasa Talkback jest klasą tabeli L2E. Zawiera parametr method_id, który ma relację 0..1 z tabelą Methods, dlatego mam tylko właściwość Scalar method_id z tablicy Talkback i właściwość nawigacji Method do konkretnej metody odnoszącej się do id_id metody tego rekordu. Tak więc mogę uzyskać metodę odnoszącą się do konkretnego rekordu Talk Back, który, jako że jest to akcja tworzenia, będzie i tak pusty. Jednak nie mogę uzyskać dostępu do wszystkich metod za pomocą modelu Talk Back. Mam nadzieję, że ma to sens! – hermiod
Zaktualizowano dodatkowym kodem. Wypróbuj to i sprawdź, czy to działa! – Tejs
Teraz pojawia się błąd "Brak przeciążenia dla metody" DropDownListFor "przyjmuje 1 argumenty". Może źle zrozumiałem MVC, ale pomyślałem, że możliwe będzie generowanie wszystkich widoków z samego modelu bazy danych i modyfikowanie w razie potrzeby. Widziałem przykłady przekazywania dowolnych list do widoku (za pośrednictwem ViewData, z którego mój pierwotny kod był oparty), czy jest jakiś sposób, aby to działało w mojej sytuacji? Dzięki za pomoc Tejs – hermiod