关于MVC路由设置问题,CS1738 命名参数规范必须出现在已指定的所有固定参数之后

superj 2016-04-15 12:25:48



这是什么错误 ,在网上查了半天没查到,所有参数都正确,就是提示这个错误,另一个地方的函数就没问题。

...全文
745 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
人生导师 2016-04-16
  • 打赏
  • 举报
回复
你应该指明具体参数名,应该像下面这样写:

 routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                namespaces: new string[] {""}
            );
你也可以都不指定参数名,像下面这样写:

 routes.MapRoute(
                 "Default",
               "{controller}/{action}/{id}",
                 new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                new string[] {""}
            );
C#中有命名参数和可选参数之分,另外从错误提示已经说明了,命名参数只能放置最后,如果你前面设置了命名参数,则后面的所有参数都应该指定参数,否则就会有你上面的错误,如果你最后一个指定命名参数的,前面不指定是不会出错的。例如下面:

 routes.MapRoute(
                "Default",
               "{controller}/{action}/{id}",
                 new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                 namespaces: new string[] {""}
            );
这个是可以的,相信我解释的够详细了吧。 关于C#基础的建议你可以看看这本书: http://item.jd.com/11657095.html

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧