Laden...

asp.net mvc2: postback von arrays im formular

Erstellt von M@TUK vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.011 Views
M
M@TUK Themenstarter:in
402 Beiträge seit 2005
vor 13 Jahren
asp.net mvc2: postback von arrays im formular

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

C
24 Beiträge seit 2009
vor 13 Jahren

Der einzige Unterschied der mir spontan zwischen deinem Quelltext und diesem Blogartikel auffällt sind die Id's die bei dir nicht gesetzt werden.

M
M@TUK Themenstarter:in
402 Beiträge seit 2005
vor 13 Jahren

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?

N
4.644 Beiträge seit 2004
vor 13 Jahren

Schau mal hier unter "Non-Sequential Indices".

16.827 Beiträge seit 2008
vor 13 Jahren

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!

T
307 Beiträge seit 2008
vor 13 Jahren

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;