Frage

, so dass ich eine Reihe von Zahlen haben, dass ich auf eine asp.net Mvc Aktion bin Entsendung, die eine Liste (von integer) Parameter und es funktioniert super.
meine Frage ist:

Ist es sicher davon ausgehen, dass die Liste (Integer) wird die Zahlen in der gleichen Reihenfolge hat, wie sie in der Anordnung waren i geschrieben?

Vielen Dank für Ihre Zeit!

EDIT:

Die Daten sehen wie folgt geschrieben werden:

POSTDATA = model.LevelIds = 6 & model.LevelIds = 19 & model.LevelIds = 16 & model.LevelIds = 21 & model.LevelIds = 18

Ich bin die Tamper Data Firefox mit auf sie sehen.

Ich bin mit jQuery, die im traditionellen Modus.

EDIT:

die Aktion sieht etwa so aus:

public function Create(byval model as thecreateviewmodel) as actionresult

hat die thecreatviewmodel eine Reihe von Eigenschaften, aber das Interessante ist ...

Public Property LevelIdsAs IList(Of Integer) = New List(Of Integer)

auf der Client-Seite ist die Ansicht Modell baut mit Javascript / jquery:

function NewEntityDataBuilder() {
    var theData = { 
        'model.Name' : $('#Name').val(),
        'model.Description' : $('#Description').val(),
        'model.LevelIds' : $('#LevelIds').val()
    };
    return theData;
}

wird diese Funktion von diesem wenig Javascript genannt, die im Grunde durch das geht und fügt all die Dinge in der Liste auf eine Dropdown-Liste (Auswahlsteuerung) und wählt sie alle.

$('#LevelIds').empty();
$('#AddedLevels').children().each(function () {
$('#LevelIds').append("<option value='" + $(this).attr('LevelId') + "'>" + $(this).attr('LevelId') + "</option>");
        });

$('#LevelIds').children().attr('selected', 'selected');  //select all the options so they get posted.

var dataToPost = NewEntityDataBuilder();   

Das scheint ziemlich gewunden, wenn es mal so ist, aber es ist eigentlich ziemlich einfach. es ist alles Teil von 2 angeschlossenen Drag & Drop-Listen, die Teil eines Formulars sind.

so: Wenn ich den Wert einer Auswahlliste setzen mit all den ausgewählten Optionen es in einer Variablen und Post, dass in eine IList (Integer) wird IList haben sie in der gleichen Reihenfolge, wie sie in der Auswahl waren. Es scheint, wie sie sind. aber ist das nur ein Zufall?

War es hilfreich?

Lösung

Normalerweise ist der Index Teil des Parametername lautet:

ints[0]=0&ints[2]=2&ints[1]=1

Und wenn Sie eine Controller-Aktion haben, dass sieht wie folgt aus:

public ActionResult Index(List<int> ints)
{
    // ints[0] = 0
    // ints[1] = 1
    // ints[2] = 2
    return View();
}

UPDATE:

Nehmen wir an, dass Sie mehrere Parameter mit dem gleichen Namen in der Abfragezeichenfolge haben. Dieser Abfrage-String wird von der ASP.NET-Engine durch die native Httprequest Objekt konvertieren in ein sein Namevaluecollection und genauer eine benutzerdefinierte Implementierung HttpValueCollection genannt. Diese Klasse ist intern zu ASP.NET was bedeutet, dass es nicht dokumentiert ist und es könnte mit Versionen von .NET ändern. Betrachtet man es mit Reflektor gibt es die FillFromString und die Art, wie es umgesetzt wird, scheint es um den Auftrag zu erhalten. Aber das ist etwas, würde ich nicht darauf verlassen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top