【发布时间】: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