Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
asp.net mvc2: postback von arrays im formular
[email protected]
myCSharp.de - Member



Dabei seit:
Beiträge: 407

Themenstarter:

asp.net mvc2: postback von arrays im formular

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Chris.B
myCSharp.de - Member



Dabei seit:
Beiträge: 25
Herkunft: Berlin

beantworten | zitieren | melden

Der einzige Unterschied der mir spontan zwischen deinem Quelltext und diesem Blogartikel auffällt sind die Id's die bei dir nicht gesetzt werden.
private Nachricht | Beiträge des Benutzers
[email protected]
myCSharp.de - Member



Dabei seit:
Beiträge: 407

Themenstarter:

beantworten | zitieren | melden

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?
private Nachricht | Beiträge des Benutzers
Noodles
myCSharp.de - Experte



Dabei seit:
Beiträge: 4802
Herkunft: Leipzig

beantworten | zitieren | melden

Schau mal hier unter "Non-Sequential Indices".
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15967

beantworten | zitieren | melden

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!
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Abt am .
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
Taucher
myCSharp.de - Member



Dabei seit:
Beiträge: 297

beantworten | zitieren | melden

Zitat
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;
private Nachricht | Beiträge des Benutzers