自动发布返回MVC4剃须刀页面

时间:2019-02-19 09:26:38

标签: javascript jquery asp.net-mvc-4

我开始在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/>

我希望能帮助任何人在其代码中遇到同样的问题。

1 个答案:

答案 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>