Ik probeer MVC te leren met een heel simpele oefening nl. Hangman.
Momenteel heb ik een view die hangman toont, gebaseerd om model Hangman.
De bedoeling is dat ik , als ik bijv op letter 'e' klik, de methode h.doegok (letter) uitvoer,
Mijn model verandert dan, en aan de hand van mijn aangepast model wil ik opnieuw zelfde view tonen.
Het probleem is: in de [httpPost] aan mijn huidige klasse hangman geraken. (via mijn view).
Voorlopig ziet mijn view er uit:
En onderaan de waarden die mijn huidige klasse zouden moeten teruggeven aan mijn controller:
En dit is mijn controller
Helaas krijg ik steeds de zelfde inputparameters binnen.
Bij eerste submit: model.stap wordt ontvangen als 0, verandert naar 1 door de g.doegok(), en stuurt die terug naar de view. Dus mijn view na mijn eerste submit is correct.
Maar bij een volgende submit ontvangt de controller opnieuw dezelfde inputparameters. Stap is bijvoorbeeld terug 0. Hoewel Model.stap op mijn view duidelijk 1 is.
Iemand enig idee hoe dit komt?
Momenteel heb ik een view die hangman toont, gebaseerd om model Hangman.
C#:
1
2
3
4
5
6
7
8
9
10
| public class Hangman { public int Stap { get; set; } public string TeRadenWoord { get; set; } public char[] GeradenWoord { get; set; } public bool Gedaan { get; set; } public bool Gewonnen { get; set;} public String Source { get; set; } ..... } |
De bedoeling is dat ik , als ik bijv op letter 'e' klik, de methode h.doegok (letter) uitvoer,
Mijn model verandert dan, en aan de hand van mijn aangepast model wil ik opnieuw zelfde view tonen.
Het probleem is: in de [httpPost] aan mijn huidige klasse hangman geraken. (via mijn view).
Voorlopig ziet mijn view er uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| @model WebHangman.Hangman .... @using (Html.BeginForm()){ <img id="img" src="@Model.Source" alt ="" /> <div > stap: @Model.Stap <br /> Geraden : @Model.GeradenWoord <br /> Boodschap : <br /> </div> ... |
En onderaan de waarden die mijn huidige klasse zouden moeten teruggeven aan mijn controller:
code:
1
2
3
4
| @Html.HiddenFor(model => model.TeRadenWoord) @Html.HiddenFor(model=>model.Source) @Html.HiddenFor(model=>model.Stap) @Html.HiddenFor(model => model.GeradenWoord) |
En dit is mijn controller
C#:
1
2
3
4
5
6
7
8
| [HttpPost] public ActionResult Index(int Stap, String TeRadenWoord, String GeradenWoord, String Source) { Hangman g = new Hangman(Stap, TeRadenWoord, GeradenWoord, Source); g.doeGok('x'); return View(g); } |
Helaas krijg ik steeds de zelfde inputparameters binnen.
Bij eerste submit: model.stap wordt ontvangen als 0, verandert naar 1 door de g.doegok(), en stuurt die terug naar de view. Dus mijn view na mijn eerste submit is correct.
Maar bij een volgende submit ontvangt de controller opnieuw dezelfde inputparameters. Stap is bijvoorbeeld terug 0. Hoewel Model.stap op mijn view duidelijk 1 is.
Iemand enig idee hoe dit komt?
[ Voor 1% gewijzigd door RobIII op 10-09-2011 18:59 . Reden: Code tags toegevoegd ]