【发布时间】:2019-08-11 16:19:26
【问题描述】:
我有一个简单的 Razor 页面,我试图显示一个按钮,单击该按钮将在后面的页面模型代码中执行一个方法,类似于 C# 的 WPF 按钮。我根本不想使用任何 javascript。
我已经达到了某种程度,它有点像我想要的那样,但是在页面加载时,它会为每个列表中的每个元素执行该方法。这是我不想要的,我只想在按下按钮时执行该方法。
带有for循环的剃须刀页面代码如下:
@foreach (var item in @Model.UserData)
{
<tr>
<td>@item.Owner</td>
<td>@item.InputPath</td>
<td>@item.OutputPath</td>
<td>@item.Status</td>
<td>
<form asp-action="@Model.DownloadCsv(@item.OutputPath)" method="post">
<button>Download</button>
</form>
</td>
</tr>
<tr>
<td colspan="5"> <hr /> </td>
</tr>
}
在后面的代码中,我现在只有这个:
public IActionResult DownloadCsv(string inputPath)
{
int i = 0;
return Page();
}
【问题讨论】:
-
剃须刀不是这样工作的。您对客户端和服务器端的担忧感到困惑。
-
那么正确的做法是什么?我对 asp.net 完全陌生。
-
我注意到它在 url 中附加了方法名称,有没有办法防止这种情况发生?如果您刷新页面,它会很烦人。
-
是的,确实如此,解决方案是阅读文档(Nkosi 提供的链接)。他们非常清楚应该如何进行设置。
标签: asp.net-core razor