【问题标题】:如何修改asp-action中的路径
【发布时间】:2022-01-23 15:02:36
【问题描述】:

我在 C# ASP 中有一个表单,两个按钮以不同的路径提交。

<form asp-action="">

<button type="submit" data-action="Liquidation" class="btn-method-switchable">
<button type="submit" data-action="Return" class="btn-method-switchable">

我尝试像这样用 Jquery 修改路径:

$('.btn-method-switchable').click(function(e) {
e.preventDefault();
let value = $(this).data('action')
$('form').attr('asp-action', value);
$('form').submit();
})

我输入了我的 Controller,但没有输入 Liquidation 或 Return 方法。

感谢您的回答

【问题讨论】:

    标签: c# jquery asp.net


    【解决方案1】:

    asp-action 属性仅在渲染前使用。当页面被渲染时,它被转换为标准的 HTML 表单 action 属性。

    另请注意,在客户端,它的值从对操作名称的引用转换为路由的相对 URL。更多详情请参阅documentation

    因此,要更正您的代码,您需要设置action 属性,并将button 元素上的data-action 修改为完整路线。这可以使用Url.Action() 助手来完成。代码看起来像这样:

    <form>
      <button type="submit" data-action="@Url.Action("Liquidation")" class="btn-method-switchable">Foo</button>
      <button type="submit" data-action="@Url.Action("Return")" class="btn-method-switchable">Bar</button>
    </form>
    
    $('.btn-method-switchable').click(function(e) {
      e.preventDefault();
      let value = $(this).data('action')
      $('form').attr('action', value).submit();
    })
    

    【讨论】:

    • 感谢您的回答,最后我使用了 C# 属性“formaction”,因为使用 jquery 我不明白为什么,我在好的控制器中输入得很好,但这让我使用了一种我不知道的方法打电话。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-24
    相关资源
    最近更新 更多