2012-04-20 20 views
10

he seguido las instrucciones de esta entrada: Asp.net mvc3 razor with multiple submit buttons y aquí está mi modelo:MVC4 - Una forma 2 botones de envío

public class AdminModel 
{ 
    public string Command { get; set; } 
} 

Mi controlador

[HttpPost] 
public ActionResult Admin(List<AdminModel> model) 
{ 
    string s = model.Command; 
} 

Mi Ver

@using (Html.BeginForm("Admin", "Account")) 
{ 
    <input type="submit" name="Command" value="Deactivate"/> 
    <input type="submit" name="Command" value="Delete"/> 
} 

Cuando publico nuevamente, la cadena "s" siempre es nula.

También probé la segunda respuesta (la de 146 votos) en esta publicación del foro: How do you handle multiple submit buttons in ASP.NET MVC Framework? y eso también es nulo. ¿Qué estoy haciendo mal?

+0

http://stackoverflow.com/questions/2423041/using -two-submit-buttons-inside-single-form/2426152 # 2426152 ¿Qué le parece esto? – takepara

Respuesta

24

Es necesario tomar el valor de su lado del servidor por el nombre del botón,

public ActionResult Admin(List<AdminModel> model,string Command) 
{ 
    string s = Command; 
} 
+0

whoa Creo que probé esto, según el segundo foro en mi publicación. No sé lo que hice mal esa vez. funciona ahora gracias. –

+0

Tenga en cuenta que al usar las etiquetas '

0

Por lo que puedo ver en el código publicado, no está enviando una lista de modelos a su controlador, solo una instancia de modelo único. Intente modificar el controlador para esto:

[HttpPost] 
public ActionResult Admin(AdminModel model) 
{ 
    string s = model.Command; 
} 
+0

Mi vista estaba tomando una lista de AdminModel :). –

Cuestiones relacionadas