0
我的控制器中有以下路由。一个获取和两个发布操作。所有人都有相同的行动名称。两个后操作使用的是MultipleButton属性区分所解释here:ASP.NET MVC 5属性路由未能正确解决路由问题
[RoutePrefix("incidents")]
public sealed class IncidentsController : Controller
{
[HttpGet, Route("action/{id:int?}/{error?}")]
public async Task<ActionResult> Action(int? id, string error = null)
[HttpPost, Route("action"), ActionName("Action"), ValidateAntiForgeryToken]
[MultipleButton(Name = "action", Argument = "Accept")]
public async Task<ActionResult> ActionAccept(IncidentActionViewModel incident)
[HttpPost, Route("action"), ActionName("Action"), ValidateAntiForgeryToken]
[MultipleButton(Name = "action", Argument = "Reject")]
public async Task<ActionResult> ActionReject(IncidentActionViewModel incident)
}
@Url.Action("Action", "Incidents", new { id = 10 })
上述路线获取呈现如下所示。导航到这个网址的作品,但如果我把'空白'参数从'空'改为int我开始得到错误。 ?
/事件/动作ID = 10
应该呈现如下图所示,如果我改变了 '身份证' 参数为int类型我不应该得到的错误:
/事故/行动/ 10
我在做什么错?
UPDATE
这里是我的路线报名详情:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional });
您可以请您分享您的路线注册详情。 – 2014-09-19 19:19:36
你得到什么错误? – 2014-09-19 21:10:41
错误只是404未找到。这很有道理,URL正在被错误地解析。 – 2014-09-23 11:51:12