【发布时间】:2015-02-02 21:07:38
【问题描述】:
当前操作结果:
[Route("EvaluatorSetup/{evalYear}/{department}")]
public ActionResult RoutedEvaluatorSetup(int evalYear, string department)
{
return EvaluatorSetup((int?)evalYear, department);
}
我想使用网址:
/EvaluatorSetup/2014/001.3244
其中 {department} 最终是一个字符串,但是,路由不会将 {department} 作为一个字符串。
A.我不知道 MVC 对“001.3244”的期望是什么类型,也不知道它是什么类型的。
B.我想将其保留为带有可选前导零的字符串,如示例所示。
我做错了什么?
更新:
我的意思是,当我在返回行中插入代码时,它永远不会触发。
/EvaluatorSetup/2014/foobar (WORKS!)
/EvaluatorSetup/2014/001.3244 (DOESN'T WORK!)
这让我相信我的路由不正确:
[Route("EvaluatorSetup/{evalYear}/{department}")]
具体来说,001.3244 似乎不是一个有效的字符串。所以我的问题是如何纠正这个问题:
[Route("EvaluatorSetup/{evalYear}/{department}")]
public ActionResult RoutedEvaluatorSetup(int evalYear, string department)
这样我就可以输入一个 uri:
/EvaluatorSetup/2014/001.3244
最好保留前导零。
我想过这样的事情:
[Route("EvaluatorSetup/{evalYear}/{corporation}.{department}")]
然而,这是一个猜测。我什至不知道这是否有效。
其他更新:
RouteConfig.cs 中的旧路由(似乎不再起作用)是这样的:
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})$" }
);
【问题讨论】:
-
不知道,
EvaluatorSetup是做什么的? -
你确定不是
.搞砸了路线吗? -
不...我不确定。正如我所说...这只是一个猜测...当时我不知道。
-
查看
/EvaluatorSetup/2014/0013244是否有效。如果是这样,你知道它是.。 -
确实如此。没有“。”它确实会触发。 ...关于如何使用“.”触发路由的任何想法?
标签: c# asp.net-mvc asp.net-mvc-5 asp.net-mvc-routing