为什么以下Html.ActionLink
调用:
Html.ActionLink("Approve", "Advance", new { id = Model.ID, step = StepType.Approve })
生成带有查询参数的 URL,而不是“restful” URL,即:
http://localhost/Website/Case/Advance/1?step=Refer
我只注册了默认路由,是否需要其他可以理解“StepType”参数的路由?
我尝试在默认路由之后添加此路由:
routes.MapRoute(
"CaseAdvance",
"{controller}/{action}/{id}/{step}",
new {controller = "Case", action = "Advance", id = "", step = StepType.Refer});
但它没有效果。在默认值之前添加新的路由注册给了我一个错误:
参数字典包含“Website.Controllers.CaseController”中方法“System.Web.Mvc.ActionResult Advance(Int64, Website.Core.StepType)”的不可为空类型“System.Int64”的参数“id”的空条目'。要使参数可选,其类型应该是引用类型或 Nullable 类型。