Pregunta

Tengo el siguiente código en mi site.master para un menú:

<ul id="menu">              
    <li><%= Html.ActionLink("My Contact Info", "DetailsbyUserName/" + Html.Encode(Page.User.Identity.Name), "Users")%></li>
</ul>

Cuando me pase por encima de la URL veo que se apunta a:

http://site/Users/DetailbyUserName/[name]

lo cual es correcto.

El problema es que cuando pongo un breakpoint en la Users clase de controlador a continuación:

public ActionResult DetailsbyUserName(string loginName)
{
    UserInfo user = repo.GetUserByName(loginName);
    return View(user);
}

parece que el loginName parámetro es siempre null.

Alguna sugerencia?

¿Fue útil?

Solución

El problema es que no tiene una Ruta configurada para especificar un parámetro llamado " loginName " ;.

Supongo que su ruta predeterminada está tragando su solicitud e intentando asignar el valor [nombre] a un parámetro llamado " id " ;. Si cambia el nombre del parámetro a & Quot; id & Quot; desde " loginName " ;, apuesto a que funcionará para usted.

Recuerde que el motor de enrutamiento asigna cada segmento de URL a un parámetro con nombre. La ruta predeterminada se ve así: "{controller}/{action}/{id}". Si desea tener un parámetro llamado & Quot; loginName & Quot ;, tendría que encontrar una ruta que tuviera los segmentos "{controller}/{action}/{loginName}", que fuera diferente de la ruta predeterminada, de modo que la ruta predeterminada no coincidió primero.

Otros consejos

probar:

Html.ActionLink("My Contact Info", "DetailsbyUserName", "Users", new { loginName = Html.Encode(Page.User.Identity.Name), null);

si el controlador es algo como esto:

public ActionResult DetailsbyUserName(string veryVeryLongParameterName);

Supongo que usted tiene que utilizar las nuevas { veryVeryLongParameterName = "YourParamValue" } en el ActionLink del routeValues parámetro.

Y también, necesita una ruta para que.

Yo soy muy nuevo en esto, al menos eso es lo que he entendido sobre ActionLinks, espero que alguien pueda explicarlo mejor.

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