c#mvc 3,动作重载?
我一直试图重载我的索引方法。
这是我的索引方法:
[ActionName("Index")] public ActionResult IndexDefault() { } [ActionName("Index")] public ActionResult IndexWithEvent(string eventName) { } [ActionName("Index")] public ActionResult IndexWithEventAndLanguage(string eventName, string language) { }
这保持铸造:
控制器类型’CoreController’上的当前操作请求’Index’在以下操作方法之间是不明确的:System.Web.Mvc.ActionResult类型为ManageMvc.Controllers.CoreController的IndexDefault()System.Web.Mvc.ActionResult IndexWithEvent(System。类型为ManageMvc.Controllers.CoreController的类型为ManageMvc.Controllers.CoreController的System.Web.Mvc.ActionResult IndexWithEventAndLanguage(System.String,System.String)
是否不可能使用3种不同的GET方法重载索引操作?
此外,如果可能,那么正确的路线是什么? 我有这个:
routes.MapRoute( "IndexRoute", // Route name "{eventName}/{language}/Core/{action}", // URL with parameters new { controller = "Core", action = "Index", eventName = UrlParameter.Optional, language = UrlParameter.Optional } );
url看起来像:
本地主机/核心/索引
本地主机/ EVENT_NAME /核心/索引
本地主机/ EVENT_NAME /语言/核心/索引
这样的重载是行不通的。
您最好的选择是使用默认值,然后使路线值可选(就像您已经拥有它们):
public ActionResult Index(string eventName = null, string language = null) { }
我不确定你是否会通过单一路线定义让路线看起来像你想要的那样。 您可能需要定义三个不同的路径并将每个路径映射回单个Action方法。
上述就是C#学习教程:c#mvc 3,动作重载?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/983685.html