Ik ben bezig met .net in het MVC 3 framework.
Ik heb dit model:
En ik wil dit editable maken. Echter het probleem is nu dat hij de struct niet mee stuurt met de postrequest.
De Id wordt wel gevuld, maar de rest niet.
Controller + View:
Wat doe ik fout? Hij pakt de struct niet mee, zoveer lijkt het. Ik kan op google helaas niets vinden, en de tutorials gebruiken geen structs icm databasebewerking.
edit:
Even wat aanvullende gegevens:
Als ik een losse property onder Id zet in person:
Dan komt die wel goed over als ik daarvoor ook een Html.EditorFor voor aanmaak.
En de variabelen uit de struct komen wél over als ik dit in de view zet:
Maar met Html.EditorFor(model => model.Name) pakt ie m dus niet
Ik heb dit model:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| public class Person { public virtual int Id { get; set; } public virtual PersonName Name { get; set; } } public struct PersonName { public PersonName(string firstName, string middleName, string lastName) : this() { FirstName = firstName; MiddleName = middleName; LastName = lastName; } public string FirstName { get; private set; } public string MiddleName { get; private set; } public string LastName { get; private set; } } public class NamePrinter { public string GetName(PersonName name) { string Output = name.FirstName; if (!String.IsNullOrEmpty(name.MiddleName)) Output += " " + name.MiddleName; Output += " " + name.LastName; return Output; } } |
En ik wil dit editable maken. Echter het probleem is nu dat hij de struct niet mee stuurt met de postrequest.
De Id wordt wel gevuld, maar de rest niet.
Controller + View:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| public ActionResult Edit(int id) { var session = db.connect(); var person = session.Get<Person>(id); return View(person); } [HttpPost] public ActionResult Edit(int id, Person person) { // Om te testen alleen de view weer herladen met de postgegevens //TryUpdateModel<Person>(person); //return person.Name.FirstName; return View(person); } |
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| @model NHibernateTest.Models.Person .. @using (Html.BeginForm()) { @Html.ValidationSummary(true) <fieldset> <legend>Person</legend> @Html.HiddenFor(model => model.Id) @Html.EditorFor(model => model.Name) <p> <input type="submit" value="Save" /> </p> </fieldset> } |
Wat doe ik fout? Hij pakt de struct niet mee, zoveer lijkt het. Ik kan op google helaas niets vinden, en de tutorials gebruiken geen structs icm databasebewerking.
edit:
Even wat aanvullende gegevens:
Als ik een losse property onder Id zet in person:
C#:
1
| public virtual string NameRaw { get; set; } |
Dan komt die wel goed over als ik daarvoor ook een Html.EditorFor voor aanmaak.
En de variabelen uit de struct komen wél over als ik dit in de view zet:
code:
1
| @Request.Form["Name.FirstName"]; |
Maar met Html.EditorFor(model => model.Name) pakt ie m dus niet
If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router