单击按钮时调用方法的正确方法

米切尔恩11

活跃成员
已加入
2020年4月10日
留言内容
39
编程经验
Beginner
我想获取一个REST API端点,但是我想在单击按钮时执行此操作。
有适当的方法来做到这一点吗?

我正在使用以下内容:
```
<input type="button" value="Fetch Parks" onclick="location.href='@Url.Action("FetchParkApi", "Park")'" />
```
这是一个用于运行称为方法的按钮"FetchParkApi"它位于ParkController上。

我也用过:
```
@ Html.ActionLink("Fetch Parks", "FetchParkApi", "Park")
```
这些方法有效,只是该方法完成后要转到ParkController上名为FetchParkApi的页面。我只想让它回到公园的索引视图
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,530
地点
弗吉尼亚州切萨皮克
编程经验
10+
按照HTML的设计,操作链接应该导航到另一个URL。

如果您不想导航到新的URL,而是调用REST API,则使按钮单击处理程序调用AJAX请求,然后在请求返回时导航到索引页面。
 

米切尔恩11

活跃成员
已加入
2020年4月10日
留言内容
39
编程经验
Beginner
按照HTML的设计,操作链接应该导航到另一个URL。

如果您不想导航到新的URL,而是调用REST API,则使按钮单击处理程序调用AJAX请求,然后在请求返回时导航到索引页面。
那么,根本没有HttpClient吗? AJAX会是更好的方法吗?
我在FetchParkApi方法中使用HttpClient
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,530
地点
弗吉尼亚州切萨皮克
编程经验
10+
Recall that <input> is going to be running in the web browser of the user who is visiting your website. Unless you are already using Blazor, then it's going to really hard to get some C# code running on the client side browser.
 

米切尔恩11

活跃成员
已加入
2020年4月10日
留言内容
39
编程经验
Beginner
Recall that <input> is going to be running in the web browser of the user who is visiting your website. Unless you are already using Blazor, then it's going to really hard to get some C# code running on the client side browser.
我想我当时迷路了。
So I wouldn't be using <input>?
什么 about <button>?

如果没有,我将如何调用对REST端点的调用?

从您的第一条评论看来,我不需要动作链接。我实际上不想转到新的URL。
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,530
地点
弗吉尼亚州切萨皮克
编程经验
10+
It's the same deal with the HTML <button> element. It is still running client side in the browser.

您可能需要花一些时间来回顾常规HTML网页的工作方式。避免阅读试图模糊真实HTML与WebForms控件之间界限的ASP.NET WebForms文档。

尽管有W3Schools,但与我一样,他们关于如何在单击按钮时调用AJAX的示例实际上很简单,而且很直接:


Instead of the "demo_text.txt", use your REST API URL. And then change the success handler to navigate to your index page.
 
最佳 底部