gpt4 book ai didi

asp.net-mvc-3 - MVC3远程属性和多个提交按钮

转载 作者:行者123 更新时间:2023-12-02 10:58:29 24 4
gpt4 key购买 nike

我发现使用带有 RemoteAttibute 和 ActionNameSelectorAttribute 的 MVC 3 似乎存在错误。

我已经实现了一个解决方案来支持同一 View 上的多个提交按钮,类似于这篇文章:http://blog.ashmind.com/2010/03/15/multiple-submit-buttons-with-asp-net-mvc-final-solution/

该解决方案有效,但是,当我在模型中引入 RemoteAttribute 时,controllerContext.RequestContext.HttpContext.Request 不再包含任何提交按钮,这会导致“多提交按钮”解决方案失败。

还有其他人经历过这种情况吗?

最佳答案

我知道这不是对您问题的直接答案,但我会建议使用客户端 JQuery 和标记来替代多个提交按钮的解决方案:

Javascript

<script type="text/javascript">
$(document).ready(function () {
$("input[type=submit][data-action]").click(function (e) {
var $this = $(this);
var form = $this.parents("form");
var action = $this.attr('data-action');
var controller = $this.attr('data-controller');
form.attr('action', "/" + controller + "/" + action);
form.submit();
e.preventDefault();
});
});
</script>

HTML

@using (Html.BeginForm())
{
<input type="text" name="name" id="name" />

<input type="submit" value="Save draft" data-action="SaveDraft" data-controller="Home" />
<input type="submit" value="Publish" data-action="Publish" data-controller="Home" />
}

它可能不如代码解决方案那么优雅,但它提供的麻烦要少一些,因为唯一实际更改的是单击提交按钮时表单的操作属性。

基本上,它的作用是,每当单击带有属性 data-action 集的提交按钮时,它都会将其父表单 action-attribute 替换为属性 data-controllerdata-action 在单击的按钮上,然后触发表单的提交事件。

当然,这个特定的示例不太通用,它总是会创建/Controller/Action url,但是可以通过点击操作中的更多逻辑轻松扩展。

只是一个提示:)

关于asp.net-mvc-3 - MVC3远程属性和多个提交按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6172262/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com