Enrutamiento de atributos con múltiples decimales iniciales a cero
Resultado actual de la acción:
[Route("EvaluatorSetup/{evalYear}/{department}")]
public ActionResult RoutedEvaluatorSetup(int evalYear, string department)
{
return EvaluatorSetup((int?)evalYear, department);
}
Me gustaría usar la url:
/EvaluatorSetup/2014/001.3244
donde el {departamento} es en última instancia una cadena, sin embargo, el enrutamiento no está recogiendo {departamento} como una cadena.
R. No sé qué tipo de MVC espera para "001.3244", o cómo lo está recogiendo.
B. Quiero mantenerlo como una cadena con ceros iniciales opcionales, como en el ejemplo.
¿Qué estoy haciendo mal?
Actualizar:
Lo que quiero decir es que, cuando pongo un salto en mi código en la línea de retorno, nunca se dispara.
/EvaluatorSetup/2014/foobar (WORKS!)
/EvaluatorSetup/2014/001.3244 (DOESN'T WORK!)
Esto me lleva a creer que mi ruta no es correcta:
[Route("EvaluatorSetup/{evalYear}/{department}")]
Específicamente, no parece que 001.3244 sea una cadena válida. Entonces mi pregunta es cómo corrijo esto:
[Route("EvaluatorSetup/{evalYear}/{department}")]
public ActionResult RoutedEvaluatorSetup(int evalYear, string department)
para que pueda ingresar un uri:
/EvaluatorSetup/2014/001.3244
preferiblemente donde se mantienen los ceros iniciales.
Pensé en algo como esto:
[Route("EvaluatorSetup/{evalYear}/{corporation}.{department}")]
Sin embargo, eso es una suposición. Ni siquiera sé si eso es válido.
Actualización adicional:
La ruta anterior en RouteConfig.cs (que ya no parece funcionar) es esta:
routes.MapRoute(
"evaluations_evaluatorsetupget",
"evaluations/evaluatorsetup/{evalyear}/{department}",
new { controller = "evaluations", action = "evaluatorsetup", evalyear = @"^(\d{4})$", department = @"^(\d{3}\.\d{4})$" },
new { evalyear = @"^(\d{4})$", department = @"^(\d{3}\.\d{4})$" }
);