Estoy tratando de tener dos métodos diferentes para el registro de cuenta en mi aplicación Asp.net MVC, uno para usuarios generales para registrarse y otro para usuarios que se están registrando con un token de registro específico. Por lo tanto tengo las siguientes firmas de método en mi AccountController
:¿Por qué Asp.net MVC no puede distinguir entre dos acciones cuando tienen diferentes parámetros?
public virtual ActionResult Register() {...}
public virtual ActionResult Register (Guid registrationToken) {...}
Sin embargo, cuando voy a http://localhost/Account/Register
me sale una excepción que la solicitud actual es ambigua entre estas dos acciones. Tenía la impresión de que usaría la acción Register
sin parámetros si no se pasaba el parámetro registrationToken
GET, de lo contrario utilizaría la 2da.
¿Esto requiere una configuración de ruta especial?
Sí, esa es una solución, pero esperaba una solución que fue automatizada por MVC. Solo pensé que MVC podía distinguir entre acciones por parámetros. – KallDrexx
@KallDrexx: el problema es que no distingue entre 'ningún parámetro' y 'el parámetro es nulo'. Además, no se diferenciará entre 'parámetro' a 'y' el parámetro 'b' es nulo 'y' parágrafo' a' se establece y no hay parámetro 'b' '. Aunque podría parecer obvio para casos simples, esto no es fácil de implementar para casos más complicados. Este sería un marco de toma de decisiones muy complicado y propenso a errores. –
Eso tiene sentido – KallDrexx