Авто postBack на странице бритвы MVC4 - PullRequest
0 голосов
/ 19 февраля 2019

Я начинаю работать в среде MVC4.И конечно у меня много проблем.Одним из них является использование события нажатия кнопки.Любая инструкция, которую я могу использовать, этот пост обратно разрушает поток моей программы.Потому что он выполняет любую инструкцию, которую я положил для других целей.Я использую «Java Script» для обработки события 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 на моей странице бритвы?(без постбэка мешает).Я проверил весь интернет на предмет решения, но то, что я нашел, было очень сложным, и я не могу разработать.Есть ли способ помочь мне в этом вопросе? ДОПОЛНЕНИЕ 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 голосов
/ 19 февраля 2019

Для управления потоком программ используйте несколько вызовов ajax с javascript:

<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>
...