C# MVC jQuery删除操作不起作用

C# MVC jQuery删除操作不起作用,c#,jquery,asp.net-mvc,C#,Jquery,Asp.net Mvc,我已经为这件事伤心了一段时间了。我有下面的表格,很好用 @using (Html.BeginForm("Edit", "PCLLine", FormMethod.Post)) { @Html.AntiForgeryToken() @Html.ValidationSummary(true) @Html.HiddenFor(model => model.ID) @Html.HiddenFor(model => model.Field) <div class="

我已经为这件事伤心了一段时间了。我有下面的表格,很好用

@using (Html.BeginForm("Edit", "PCLLine", FormMethod.Post))
{
  @Html.AntiForgeryToken()
  @Html.ValidationSummary(true)

  @Html.HiddenFor(model => model.ID)
  @Html.HiddenFor(model => model.Field)
  <div class="small">
    @Html.TextBoxFor(model => model.Number, new { onchange = "setEditWBSElementNumber(this," + Model.ID + ")" })
    @Html.ValidationMessageFor(model => model.Number)
  </div>

  <div class="large">
    @Html.EditorFor(model => model.Description)
    @Html.ValidationMessageFor(model => model.Description)
  </div>

  <div>
    @Html.EditorFor(model => model.NumberTwo)
    @Html.ValidationMessageFor(model => model.NumberTwo)
  </div>

  <div>
    @Html.TextBoxFor(model => model.ConcatNumber, new { @id = Model.ID.ToString() + "_WBSElementNumber" })
    @Html.ValidationMessageFor(model => model.ConcatNumber)
  </div>

  <div class="large">
    @Html.EditorFor(model => model.Remarks)
    @Html.ValidationMessageFor(model => model.Remarks)
  </div>
  <div>
    <input type="submit" class="accept" value="Opslaan" />
  </div>
  <div>
    <input class="folderButton" value="Opties" onclick="pclSubLineDialog()" />
  </div>
  <div>
    <input class="delete" value="Verwijderen" onclick="deleteItem(); return false;" />
  </div>
}
以及控制器:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Delete(int pclLineId)
{
  try
  {
    // TODO: Add delete logic here
    _pclLineBLL.DeletePCLLine(pclLineId);
    return Json(new { success = true });
  }
  catch
  {
    return Json(new { success = false });
  }
}

参数的名称很重要。您应该根据操作声明重命名请求参数:

data: { pclLineId: "@Model.ID" },

参数的名称很重要。您应该根据操作声明重命名请求参数:

data: { pclLineId: "@Model.ID" },

在控制器类中,您将参数命名为
pclLineId
,而不是
id

您可以:

  • 重命名参数
    id
  • 将jQuery函数更改为传递
    pclLineId
    而不是
    id

  • 在控制器类中,您将参数命名为
    pclLineId
    ,而不是
    id

    您可以:

  • 重命名参数
    id
  • 将jQuery函数更改为传递
    pclLineId
    而不是
    id

  • //将您的函数更改为

    function deleteItem() {
        $.ajax({
          url: "PCLLine/Delete",
          type: "POST",
          data: { pclLineId: "@Model.ID" },
          dataType: "json",
          success: function (data) {
            alert('');
          }
        });
      }
    

    //将您的函数更改为

    function deleteItem() {
        $.ajax({
          url: "PCLLine/Delete",
          type: "POST",
          data: { pclLineId: "@Model.ID" },
          dataType: "json",
          success: function (data) {
            alert('');
          }
        });
      }