ASP.NET MVC Core / 6:多个提交按钮
我需要多个提交按钮来在控制器中执行不同的操作。
我在这里看到了一个优雅的解决方案: 如何在ASP.NET MVC框架中处理多个提交按钮? 使用此解决方案,可以使用自定义属性修饰操作方法。 处理路径时,此自定义属性的方法检查属性的属性是否与单击的提交按钮的名称匹配。
但是在MVC Core(RC2每晚构建)中我还没有找到ActionNameSelectorAttribute
(我还搜索了Github存储库)。 我找到了一个类似的解决方案,它使用ActionMethodSelectorAttribute
( https://www.dotnetcurry.com/aspnet-mvc/724/handle-multiple-submit-buttons-aspnet-mvc-action-methods )。
ActionMethodSelectorAttribute
可用,但方法IsValidForRequest
具有不同的签名。 有一个类型为RouteContext
的参数。 但我找不到那里的post数据。 所以我没有什么可以与我的自定义属性属性进行比较。
MVC Core中是否有与之前的MVC版本类似的优雅解决方案?
您可以使用HTML5 formaction
属性,而不是在服务器端路由它。
然后只需要像这样的控制器动作:
[HttpPost] public IActionResult DoWorkOne(TheModel model) { ... } [HttpPost] public IActionResult DoWorkTwo(TheModel model) { ... }
可以在此处找到适用于旧版浏览器的优质填充。
请记住……
- 当用户按下回车符时,将始终选择第一个提交按钮。
- 如果在发布的操作上发生错误 –
ModelState
或其他 – ,则需要将用户发送回正确的视图。 (但是,如果您通过AJAX发布,这不是问题。)
ASP.NET Core 1.1.0具有FormActionTagHelper
,用于创建formaction
属性。
这样渲染:
它也适用于type="image"
或type="submit"
input
标签。
上述就是C#学习教程:ASP.NET MVC Core / 6:多个提交按钮分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/952430.html