Событие кнопки Onclick не срабатывает правильно MVC - PullRequest
0 голосов
/ 24 мая 2018

У меня есть страница, которая содержит основной вид и несколько частичных видов.В частичном представлении у меня есть несколько кнопок, которые должны перейти к результату действия контроллера.Проблема в том, что кнопка onclick событие не срабатывает, только иногда.Я попытался поместить код на главном экране в тег script.Я попытался поместить код для onclick в частичное представление, но он не работает должным образом.

Я также хотел бы упомянуть, что это частичное представление отображается в большем количестве представлений, поэтому я думаю, что onclick событие должно присутствовать в частичном представлении, где находятся кнопки.

Это частичное представление:

<div class="row viewEdit">
    <div class="button-bar col-md-2">
       <button type="button" id="btnDamageInvoiceShow" class="btn btn-success  btnDamageInvoiceShow">@Resources.Common.ShowInvoice</button>
   </div>
    <div class="button-bar col-md-2">    
        <button type="button" id="btnDamageInvoiceGenerate" class="btn btn-success  btnDamageInvoiceGenerate">@Resources.Common.Generate</button>           
    </div>
</div>

enter image description here

Это код для onclick:

<script type="text/javascript">
$(document).ready(function () {

    $(".btnDamageInvoiceGenerate").on("click", function (e) {
            var idSelector = function () { return this.id; };
            var selectedDamages = $(":checkbox:checked").map(idSelector).get();
            console.log(selectedDamages);

            console.log("idee");

            var baseUrl = '@Url.Action("GenerateInvoiceDamage", "TimberMonitor", new { Area = "" })';
            var url = baseUrl + '?' + $.param({ damageIds: selectedDamages }, true);
            location.href = url;
        });

        $("#btnDamageInvoiceShow").on("click", function (e) {
            //var btn = this;
            //e.preventDefault();

            console.log("hello");

            var idSelector = function () { return this.id; };
            var selectedDamages = $(":checkbox:checked").map(idSelector).get();
            console.log(selectedDamages);

            var baseUrl = '@Url.Action("ShowDamageInvoice", "TimberMonitor", new { Area = "" })';
            var url = baseUrl + '?' + $.param({ damageIds: selectedDamages }, true);
            location.href = url;
        });
    });

А это ActionResult от контроллера:

 public ActionResult GenerateInvoiceDamage(IEnumerable<string> damageIds)
 { .. .}

Можете ли вы посоветовать?

1 Ответ

0 голосов
/ 24 мая 2018

Попробуйте $("body").on("click", ".btnDamageInvoiceGenerate", function(e) { и $("body").on("click", "#btnDamageInvoiceShow", function (e) { вместо этого и дайте мне знать, работает ли он или нет в комментариях

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...