¿Cómo utilizo un valor oculto más de una vez en el mismo método controlador / vista?

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

  •  19-09-2019
  •  | 
  •  

Pregunta

Tengo un método que lista los directorios que enumeran y se puede profundizar en los directorios. El método es el siguiente:

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

En la vista ListObjects, estoy experimentando el campo oculto Prefijo no cambiar el valor después de la primera vez que tiene un valor. Yo manera que no pongan añadiendo y campo adicional que hace que cambia el valor después de la primera vez que tiene uno. por ejemplo: la primera vez que procesar el prefijo método ListObjects es nulo, y item.prefix tiene el primer valor para cada directorio, pero después de hacer clic en cualquier directorio en el primer punto de vista, la segunda vez que el controlador se llama el valor real que nunca cambios.

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

Esta es una pequeña muestra de lo que está sucediendo realmente.

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

Mi objetivo es tener el identificador de entrada = "Prefijo" para cambiar en cada llamada, y no quedarse estático después de la primera vez que se pone un valor. Como se puede ver los dos campos de entrada por encima del prefijo tiene CP mientras que el testvariable tiene CPTest cp / que es el valor que quería, pero los dos campos de entrada están siendo tomada de la misma variable.

EDIT 2:

Creo que tiene que ver con el hecho de que las cadenas son referencias y desde framework MVC ve que Prefijo tiene un valor de una solicitud anterior se anula la nueva asignación de valor a partir model.Prefix.


NOTA: He publicado la pregunta ayer, y responder a la pregunta a mí mismo después de un poco de solución de problemas. La solución que he encontrado no es el ideal, pero está trabajando y he terminado a menos que alguien aquí es capaz de darme una mejor manera de conseguir el mismo. Por favor hagamelo saber. Geo

¿Fue útil?

Solución 2

Estoy seguro de que esta no es la solución ideal, pero tengo alrededor de mi problema al no utilizar los archivos de ayuda MVC. En lugar de utilizar el ayudante Html.Hidden utilicé directamente el campo de entrada como a continuación:

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

Esto funciona como un encanto, si se piensa en una razón por la html.Hidden no está funcionando por favor hágamelo saber.

Otros consejos

Tal vez porque la segunda vez que estés procesar los ListObjects su bandera no es nulo ni vacío. Estás cambiando el estado del objeto en la primera llamada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top