应用程序不在ASP.net MVC中的setInterval方法之后提交表单

时间:2016-01-05 14:59:57

标签: c# jquery asp.net-mvc

应用程序不会在setInterval方法之后提交表单。 如果我在setInterval方法之前单击按钮“购买”(在5秒内),那么一切都很好,表单将发送出去。 但是在5秒之后,当数据将通过setInterval方法刷新时,如果我点击“购买”按钮则没有任何反应。

主要观点:

<div id="ListTable">
    @{Html.RenderAction("_ListPartial");}
</div>

<script>
    setInterval(function () {
        $("#ListTable").load('@Url.Action("_ListPartial","Home",null)');
    }, 5000);
</script>

_ListPartial view:

<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Name)
        </th>
        .
        .
        .
    </tr>

    @foreach (var item in Model)
    {
        using (Html.BeginForm("AddToCart", "Shop", FormMethod.Post))
        {
            <tr>
                <td>
                    @Html.DisplayFor(modelItem => item.Name)
                    @Html.Hidden("ItemId", item.ItemId)
                </td>
                .
                .
                .
                <td>
                          <input type="submit" value="Buy" />
                </td>
            </tr>
        }
    }
</table>

1 个答案:

答案 0 :(得分:0)

请求完成后使用setTimeout

function sendRequest() {
 $.ajax({
  type: 'GET',
  url: 'URL',
  dataType: "json",
  complete: function(xhr, statusText) {
   setTimeout('sendRequest', 1000);
  },
  success: function(data, textStatus, jqXHR) {
   alert("success: ");
  },
  error: function(data, textStatus, jqXHR) {
   alert("error");
   alert(JSON.stringify(data));
  },
 });
}

如果内容加载时间超过1秒,则您的队列中会有多个请求。