Wie verwende ich einen versteckten Wert mehr als einmal in der gleichen Controller-Methode / Ansicht?

StackOverflow https://stackoverflow.com/questions/1518136

  •  19-09-2019
  •  | 
  •  

Frage

habe ich eine Methode, die Liste Verzeichnisse Auflistung und Sie können in den Verzeichnissen bohren. Das Verfahren sieht wie folgt aus:

           public ActionResult ListObjects(string Prefix)
           {
             if(string.isnullorempty(Prefix))
                //Present root files and directories
             else
                //Present directory choosed with Prefix
           }

Auf der Ansicht Listobjects, erlebe ich das Präfix versteckte Feld nicht Wert nach dem ersten Mal ändert es einen Wert hat. Ich geprüft, dass durch das Hinzufügen und zusätzliches Feld, das den Wert nach dem ersten Mal tut ändert er eine hat. zum Beispiel: das erste Mal verarbeiten Sie die Listobjects Methode Präfix null ist, und item.prefix hat den ersten Wert für jedes Verzeichnis, aber nachdem Sie auf einem beliebigen Verzeichnis in der ersten Ansicht klicken, wird der Controller das zweite Mal, den Ist-Wert nie aufgerufen Änderungen.

                <%= Html.Hidden("Prefix",item.Prefix) %>
                <%= Html.Hidden("TestVariable" ,item.Prefix) %>

Dies ist ein wenig Beweis dafür, was tatsächlich geschieht.

   <input id="Prefix" type="hidden" value="CP/" name="Prefix"/>
   <input id="TestVariable" type="hidden" value="CP/CPTest/" name="TestVariable"/>

Mein Ziel ist es, die Eingabe id = „Prefix“ zu ändern in jedem Gespräch zu haben, und nicht statisch nach dem ersten Mal bleibt sie einen Wert bekommen. Wie Sie die beiden Eingabefelder können über das Präfix CP hat, während die testvariable cp / cptest was der Wert ist, dass ich wollte, aber beide Eingabefelder werden von den gleichen Variablen genommen.

EDIT 2:

ich denke, es mit der Tatsache zu tun hat, dass Strings sind Referenzen und da MVC-Framework sieht, dass Präfix einen Wert aus einer vorherigen Anfrage hat es die neue Wertzuweisung Vorrang von model.Prefix.


Hinweis: Ich habe die Frage gestern geschrieben, und ich die Frage beantworten, mich nach einer kleinen Fehlersuche. Die Lösung, die ich gefunden ist nicht ideal, aber funktioniert, und ich fertig bin, es wäre denn jemand hier in der Lage ist, mir einen besseren Weg, um das gleiche zu erreichen. Lass es mich wissen, bitte. Geo

War es hilfreich?

Lösung 2

Ich bin sicher, das ist nicht die ideale Lösung, aber ich habe um mein Problem, indem nicht die MVC Helfer-Dateien. Anstelle der Verwendung der Html.Hidden Helfer verwendete ich direkt das Eingabefeld unten ein:

  <%--<%= Html.Hidden("Prefix",item.Prefix) %>--%>                
  <input id="Prefix" type="hidden" value="<%= item.Prefix %>" name="Prefix" />  

Das funktioniert wie ein Zauber, wenn Sie aus einem Grunde denken, warum der html.Hidden nicht funktioniert lass es mich wissen.

Andere Tipps

Vielleicht, weil das zweite Mal, wenn Sie die Bearbeitung der Listobjects Ihre Fahne ist nicht null noch leer. Sie sind in dem ersten Aufruf den Zustand des Objekts zu ändern.

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