栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

路由:以下操作方法之间当前的操作要求[…]不明确

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

路由:以下操作方法之间当前的操作要求[…]不明确

在一个控制器上,您最多只能有两个具有相同名称的操作方法,而要做到这一点,必须为1

[HttpPost]
,另一个必须为
[HttpGet]

由于两种方法都是GET,因此您应该重命名其中一种操作方法或将其移至其他控制器。

尽管您的2个浏览方法是有效的C#重载,但MVC操作方法选择器无法确定要调用的方法。它将尝试将路由与该方法匹配(反之亦然),并且该算法不是强类型的。

您可以使用指向不同操作方法的自定义路由来完成所需的操作:

…在Global.asax中

routes.MapRoute( // this route must be declared first, before the one below it     "StartBrowse",     "Gallery/Browse/Start/Here",     new     {         controller = "Gallery",         action = "StartBrowse",     });routes.MapRoute(     "ActualBrowse",     "Gallery/Browse/{searchterm}",     new     {         controller = "Gallery",         action = "Browse",         searchterm = UrlParameter.Optional     });

…以及在控制器中…

public ActionResult Browse(string id){    var summaries =     return View(summaries);}public ActionResult StartBrowse(){    var summaries =     return View(summaries);}

您还可以通过将属性应用于一个属性来区分它,从而在控制器中使名称相同的动作方法保持相同

[ActionName]
。使用与上述相同的Global.asax,您的控制器将如下所示:

public ActionResult Browse(string id){    var summaries =     return View(summaries);}[ActionName("StartBrowse")]public ActionResult Browse(){    var summaries =     return View(summaries);}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/568490.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号