按钮Onclick事件无法正常触发MVC

时间:2018-05-24 09:13:22

标签: javascript asp.net-mvc

我有一个页面,其中包含主视图和一些部分视图。 在局部视图中,我有一些按钮应该转到控制器动作结果。问题是按钮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 :(得分:1)

试试$("body").on("click", ".btnDamageInvoiceGenerate", function(e) {  和$("body").on("click", "#btnDamageInvoiceShow", function (e) {而是让我知道它是否在评论中有效