【问题标题】:Why is my asp-action calling the wrong action in my controller为什么我的 asp-action 在我的控制器中调用错误的操作
【发布时间】:2019-04-08 14:00:42
【问题描述】:

.net 核心的新手,有一个 mvc .net 核心应用程序,我在其中设置部分视图中的参数,单击“提交”按钮并获取从我的控制器中的 CreateList 操作返回的数据列表。这一切都有效。我添加了一个按钮“导出到 excel”并在同一个控制器中有一个 ExportToExcel 操作,但是当我单击“导出到 excel”按钮时,它转到“CreateList”操作而不是“ExportToExcel”操作。

我分别尝试了 input type=Submit 和 formaction = "CreateList" 和 "ExportToExcel"。我尝试了按钮 asp-action=CreateList 和按钮 asp-action=ExportToExcel 但它总是转到 CreateList 操作

cshtml:

<form asp-controller="CADIncidentData" method="post">
  <button asp-action="CreateList" asp-controller="CADIncidentData">View List</button>
  <button asp-action="ExportToExcel" asp-controller="CADIncidentData">Export To Excel</button>
</form>

控制器:CallIncidentData

[HttpPost]
 public IActionResult CreateList(CallData.allParameters c)
   {
     ...code to create the list
   }

[HttpPost]
 public IActionResult ExportToExcel(CallData.allParameters c)
   {
     ...code to export to excel
   }

我需要 asp-action ExportToExcel 来转到我的控制器中的 ExportToExcel 动作,而不是转到当前正在运行的控制器中的“CreateList”。我不明白为什么它不去那里,我能做些什么来解决它?

【问题讨论】:

  • 如果你切换控制器方法的位置,ExportToExcel 会被调用吗?
  • 如果从表单中删除 asp-controller 属性会发生什么?它不应该被需要,因为它在按钮上,也许它会覆盖按钮操作并指向控制器上的第一个操作?只是一个理论......
  • 我在 CreateList 上方切换了 ExportToExcel 操作,并删除了 asp-controller 属性,但两次按钮单击仍然调用 CreateList 操作...
  • 代码按原样工作。你有一些特殊的路由或路由属性吗?
  • 在我的启动配置中,这是我所拥有的:

标签: .net asp.net-core-mvc


【解决方案1】:

愚蠢的错误 - 我的实际操作项上没有“公开”(我发布的代码已针对问题进行了简化)。添加了 public 并且可以正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-13
    • 1970-01-01
    相关资源
    最近更新 更多