2008-11-25 47 views
85

no puedo ver para recuperar un ID que estoy enviando en un Html.ActionLink en mi controlador, aquí es lo que estoy tratando de hacerASP.NET MVC pasar un ID en una ActionLink al controlador

<li> 
    <%= Html.ActionLink("Modify Villa", "Modify", "Villa", new { @id = "1" })%></li> 


    public ActionResult Modify(string ID) 
    { 

     ViewData["Title"] =ID; 
     return View(); 
    } 

Eso es lo que recomendé un tutorial que seguí, pero no está funcionando, también está poniendo? Length = 5 al final de la URL!

¡Gracias de antemano!

edición: aquí es la ruta que estoy usando, es por defecto

 routes.MapRoute(
      "Default",            // Route name 
      "{controller}/{action}/{id}",       // URL with parameters 
      new { controller = "Home", action = "Index", id = "" } // Parameter defaults 
     ); 

parece que alguien ha downvoted las dos sugerencias a continuación, pero no publicado su solución!

Respuesta

186

no se ve como si estuviera utilizando la sobrecarga correcta de ActionLink. Prueba esto: -

<%=Html.ActionLink("Modify Villa", "Modify", new {id = "1"})%> 

Esto supone que su vista está bajo la carpeta Vistas// Villa. Si no, entonces sospecho que necesita: -

<%=Html.ActionLink("Modify Villa", "Modify", "Villa", new {id = "1"}, null)%> 
+4

Buena decisión - El problema era que la primera sobrecarga de esa función se llevó "htmlAttributes" como el cuarto parámetro . Entonces agregar ", null" obligó al compilador a usar su objeto en línea como los parámetros de ruta. –

+0

¡su segunda respuesta fue correcta! No tengo idea de por qué alguien te rechazó, gracias. – Tablet

+1

GRACIAS! Aprendiendo MVC3 ..... – felickz

10

no ponga la @ antes de la Identificación del

new { id = "1" } 

El marco de "traducir" en? Longitud cuando hay una falta de coincidencia en el parámetro/ruta

20

En MVC 4 puede vincular de una vista a otro controlador de pasar el Id o clave principal a través de

1

El ID trabajará con @ signo en frente también, pero tenemos que agregar un parámetro después de eso. es decir null

aspecto:

@Html.ActionLink("Label Name", "Name_Of_Page_To_Redirect", "Controller", new {@id="Id_Value"}, null) 
3

En MVC 5 es bastante similar

@Html.ActionLink("LinkText", "ActionName", new { id = "id" }) 
Cuestiones relacionadas