我开始在MVC4环境中工作。
当然,我有很多问题。其中之一是使用按钮单击事件。
我可能使用的任何指令,此回发都会破坏程序的流程。
因为它会执行我放置其他用途的任何指令。
我使用“ Java脚本”来处理onclick
事件,如下所示:
<script type="text/javascript">
function IntegrityOnClick(status) {
switch (status) {
case 1:
$.ajax({
type: 'GET',
url: '@Url.Action("CheckIntegrity_Click", "Models/_mainPage")',
dataType: 'json'
});
case 0 :
return;
default:
}
}
我这种情况引发了404 not found
错误
如果我将url:
更改为
'@Attributes.codeBehind.CheckIntegrity_Click'
然后event
可以正常工作,但是也会随着页面加载触发,这不是理想的选择。
很明显,我的代码的格式不正确,但是我不知道这个错误在哪里。
问题是:
有没有办法以正确的方式在我的剃须刀页面上运行button click event
? (没有回发干扰)。
我已经检查了所有互联网的解决方案,但发现却非常复杂,无法开发。
有什么办法可以帮助我解决这个问题吗?
ADDITION 19/2/19 17:30
在@Marcelo Vismari的帮助下,我最终得到了以下代码
首先是按钮。
<button id="checkIntegrity" class="checkIntegrity" onclick="IntegrityOnClick()">
脚本第二。
<script type="text/javascript">
function IntegrityOnClick() {
// It'll generate an ajax request to IntegrityBtn_Click action, on controller.
// It's not refresh your page, so will not destroy your flow.
$.ajax({
type: 'GET',
url: '@Url.Action("IntegrityBtn_Click")',
dataType: 'json',
});
}
</script>
最后是控制器站点。
Public Function IntegrityBtn_Click() As JsonResult
Return Json(New With {Key Attributes.codeBehind.CheckIntegrity_Click}, JsonRequestBehavior.AllowGet)
End Function.<br/>
我希望能帮助任何人在其代码中遇到同样的问题。
答案 0 :(得分:2)
要控制程序流程,请使用带有JavaScript的一些ajax调用:
<input type="button" onclick="myEvent()" />
public class YourController : Controller
{
public JsonResult CheckIntegrity_Click() {
return Json(new { message = "aaa", foo = true }, JsonRequestBehavior.AllowGet));
}
}
<script>
function myEvent() {
// It'll generate an ajax request to CheckIntegrity_Click action.
// Then it'll return some data back.
// It's not refresh your page, so will not destroy your flow.
$.ajax({
type: 'GET',
url: '@Url.Action("CheckIntegrity_Click")',
dataType: 'json',
success: function(data) {
// Here is data returned by CheckIntegrity_Click action
alert(data.message); // aaa
console.log(data.foo); // true
}
});
}
</script>