Hi,
ich bin grad am verzweifeln.
Ich hab eine einfaches Formular:
<form method="post" action="home/about">
<input type="text" name="text" value="" />
<input type="text" name="value[1321]" value="" />
<input type="text" name="value[234234]" value="" />
<input type="text" name="value[53424]" value="" />
<select name="foo[]" size="5" multiple>
<option value="1">bla</option>
<option value="1">fasel</option>
<option value="1">blub</option>
</select>
<input type="submit" name="submit" value="senden" />
</form>
Wie komme ich nun im Controler bzw. der Action an die Werte der "Arrays"??
Ich hab es schon mit der FormCollection versucht aber da krieg ich die Werte nicht....
THX
Der einzige Unterschied der mir spontan zwischen deinem Quelltext und diesem Blogartikel auffällt sind die Id's die bei dir nicht gesetzt werden.
Hi,
das mit dem ModelBinding funktioniert aber nur
wenn das Array mit 0 beginnt.
Wie komm ich aber an die Werte wenn ich strings verwenden "muss"...
also
<input type="text" name="val[de][name]" value="foo" />
<input type="text" name="val[en][name]" value="blub" />
<input type="text" name="val[fr][name]" value="fasl" />
Mit PHP hätt ich in dem Fall:
array("de"=>array("name" =>"foo"),
"en"=>array("name" => "blub"),
"fr" =>array("name" => "fasl"));
Was ist die "best practice" für so einen Fall?
Hallo,
ich bin mir nicht ganz sicher, was Du am Controller empfangen möchtest.
Es gibt aber für die Html UI Helper, die ich bei MVC 2 sowieso stehts empfehle, eine nette Erweiterung, die ich hier gefunden habe:
Editing a variable length list, ASP.NET MVC 2-style
Damit bekommst Du direkt ein Liste von Models an Deinen Controller geliefert.
Es ist auch möglich, dass die Liste eine Eigenschaft des Models ist!
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Wie komm ich aber an die Werte wenn ich strings verwenden "muss"...
z.B. so:
public enum LanguageValues
{
DE = 0
, EN
, FR
}
// in der view...
<input type="text" value="language[<%= (int)LanguageValues.DE %>]" />
<input type="text" value="language[<%= (int)LanguageValues.EN %>]" />
// im controller
foreach(int item in language)
foo = (LanguageValues)item;