asp.net-mvc – 用相同的动词重载asp.net MVC控制器方法?
发布时间:2020-12-15 23:11:15 所属栏目:asp.Net 来源:网络整理
导读:我所看到的重载的所有示例通常只有两个具有不同参数的同名的方法,一个使用GET动词,另一个使用POST.同样的方法可以做两次以上的重载吗? 这是我所指的一个例子:Can you overload controller methods in ASP.NET MVC? 解决方法 默认情况下,我不认为您可以使用
我所看到的重载的所有示例通常只有两个具有不同参数的同名的方法,一个使用GET动词,另一个使用POST.同样的方法可以做两次以上的重载吗?
这是我所指的一个例子:Can you overload controller methods in ASP.NET MVC? 解决方法
默认情况下,我不认为您可以使用一个动词重载相同的动作名称.正如您指出的另一个线程,您可以重载方法&然后使用属性来更改映射到该方法的操作,但我猜这不是你要找的.
我之前使用过的另一个选项(取决于你的重载是多么复杂/不同)是简单地使用可参数的参数&有效地将您的不同签名合并在一起.所以代替: public ActionResult DoSomething(int id)... public ActionResult DoSomething(string name)... 只有: public ActionResult DoSomething(int? id,string? name) 不是最好的解决方案,但如果一个重载只是建立在另一个,那么它不是太糟糕的妥协. 一个最后的选择可能值得一去(我没有尝试过,甚至不知道它是否工作,但逻辑上应该),是写一个ActionMethodSelectorAttribute的实现,该实现将传递的参数进行比较ControllerContext给方法签名&尝试做出最佳匹配(即尝试比默认实现更严格地解决歧义). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ef-code-first – 如何使用LocalDB和EF,而不使用迁移
- asp.net-mvc – 为什么DropDownListFor会在提交后丢失多个选
- asp.net – 如何在警告框中显示验证控件的错误消息?
- asp.net – 如何在aspx文件中创建区域?
- asp.net-mvc – IIS显示服务器错误而不是自定义错误
- asp.net-mvc – MVC 4. IIS 7.5 PUT返回405
- asp.net – 使用Excel VBA从aspx页面表中检索数据
- asp.net – 使用EF5从4.5降级到4.0后无法加载文件或程序集“
- asp.net-mvc – ViewModel有自己的逻辑吗?
- asp.net – 选择框更改事件中的setTimeout
推荐文章
站长推荐
- asp.net – 如何从JavaScript访问ASPxTextBox的值
- asp.net-mvc – 为什么DropDownListFor会在提交后
- .net-4.0 – 为什么我在一个新的MVC4项目中收到编
- asp.net-core-mvc – global.json和src文件夹有多
- 在Classic ASP中从ADODB调用参数化Oracle查询
- 两个单选按钮ASP.NET C#
- 重新写了一个拼音输入法词库转换小程序
- asp.net – 如何在visual studio中查看cshtml页面
- 使用HtmlAnchor或ASP.NET HyperLink作为导航页内
- IIS7 – 在ASP中指定内容长度标头会导致“连接重
热点阅读