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})$" }
    );

Respuestas a la pregunta(2)

Su respuesta a la pregunta