javascript - 如何调用具有动态数据的onclick jquery函数,Asp.net Mvc5

标签 javascript jquery ajax asp.net-mvc razor

我正在使用 for-each 循环加载包,从代码中可以清楚地看出......

<div class="row">             
  @foreach(var items in ViewBag.packages)
  {  
    <div class="col-md-2">
      <div class="price-table-area">
        <div class="fixed-img sec-bg5"></div>
        <ul class="proce-table">
          <li class="price-prdct"><i>$</i>@items.NewPrice<i>/m</i></li>
          <input type="submit" class="submit" value="SignUp" onclick="packageSelect(@ViewBag.PackageId)">
        </ul>
      </div>
    </div>
  }
</div>

我在点击时调用函数packageSelect,它调用对 Controller 操作的ajax调用。可以看出,我正在将 @viewbag.PackageId 参数传递给函数。

Controller 操作

public ActionResult SelectPackage(int PackageId)
{
    Session["Package"] = PackageId;
    return this.Json(string.Empty); ;
}

脚本

<script>
  function packageSelect(PackageId) {
    $.ajax({
      type: "POST",
      url: '@Url.Action("SelectPackage", "Home")',
      dataType: "JSon",
      data: { "PackageId": PackageId },
      success: function (data) {
        console.log(data);
        // $("#SecondInfo").focus({ scrollTop: "0px" });
        $('html, body').animate({ scrollTop: $('#contact-us').offset().top }, 'slow');
      },
      error: console.log("it did not work"),
    });
  };
</script>

这样打电话正确吗?问题是函数没有被调用。

最佳答案

严肃地说,我认为这不是一个好方法。

相反,你应该更清楚地对待它-

使用data属性。

<button class="submit" data-id="@items.PackageId">SignUp</button>

然后-

$('button').on('click',function(){
    var id = $(this).data('id'); //attribute's value
    packageSelect(id); //passing the value to function
});

附注- 另外我想你正在迭代 id,如果是,那么你不应该将它用作 -

@ViewBag.PackageId

它应该是(如果它迭代并且不会保持不变)- @items.PackageId

关于javascript - 如何调用具有动态数据的onclick jquery函数,Asp.net Mvc5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30913834/

相关文章:

php - jQuery 解析 Twitter jSON 但不解析我的同一个 PHP 文档

PHP/JavaScript 置顶?

javascript - 如何在 URL 中编码/

javascript - 从 backbone.js 中的 javascript 事件监听器获取它

javascript - 使用 Ajax 提交联系表单而无需重新加载页面

javascript - 每x秒从服务器请求数据的最佳方式

javascript - 重写htaccess找不到文件

javascript - 根据 JavaScript 中的条件分配值

javascript - JQuery 比较类名

C# WebBrowser InvokeScript 给出错误