是ASP.net的新手。我试图有一个简单的页面视图,它有一个按钮,当点击时,这将调用控制器中的方法,然后用c#做更多的代码和计算。
我阅读了帖子并尝试了这个,但似乎没有调用该方法,调试器永远不会在Controler ClickButton1方法中停止。
我的VIEW代码
<div>
<input id="Button1" type="button" value="Button 1" onclick="ClickButton1()" />
<input id="Button2" type="button" value="Button 2" onclick="location.href='@Url.Action("Options", "Home")'" />
</div>
<div>
<canvas id="mapCanvas" width="500" height="150" style="border:1px solid #000000;"></canvas>
</div>
<script>
function ClickButton1() {
$.ajax({
type: "POST",
url: '@Url.Action("ClickButton1", "Definition")',
async: true,
success: function (msg) {
ServiceSucceeded(msg);
},
error: function () {
return "error";
}
});
}
</script>
&#13;
我的控制器
namespace Traveler.Controllers
{
public class DefinitionController : Controller
{
// GET: /<controller>/
public IActionResult Index()
{
return View();
}
// Action click on Button 1
public void ClickButton1()
{
Console.WriteLine("Button 1 Clicked");
}
}
}
&#13;
答案 0 :(得分:0)
将输入类型更改为提交按钮以避免多次提交。
将控制器方法标记为[HttpPost]
,然后重试。
如果您想知道为什么要这样做,请阅读:
[HttpPost]
属性告诉路由引擎将该操作方法的任何POST请求发送到另一个方法。这是一种重载。
如果您想知道如何将Method标记为[HttpPost]
方法,请查看以下内容:
[HttpPost]
public void ClickButton1()
{
Console.WriteLine("Button 1 Clicked");
}
我希望这会对你有所帮助:)。