2

だから私はいくつかのアクションリンクとjavascriptメソッドを含む私のビューを持っています、私が欲しいのはアクションリンクで私のスクリプトを呼び出すことです、これは私のスクリプトです:

function deleteSubscriber(id)
{
  var url = '/Subscribers/Delete/' + id;
  $.ajax({
    type: "delete",
    url: url,
    data: {},
    datatype: 'json',
    success: function (data) { alert(id); },
  });
}

これは私のアクションリンクです:

 @Html.ActionLink("Delete", "Delete", new { id=//here i want to put my script  },new { @class = "delete-logo" })

これが私の行動です:

[HttpDelete,ActionName("delete")]
    public ActionResult Delete(string id)
    {
        try
        {
              IEnumerable<Subscribe> list = from s in dbcontext.Subscribes select s;
              foreach (var sb in list)
              {
                  if (sb.cin == id)
                  {
                      dbcontext.Subscribes.Remove(sb);
                  }
              }
              dbcontext.SaveChanges();
              return View("Index");
        }
        catch
        {
            return View();
        }
    }
4

3 に答える 3

4

アンカーで JavaScript 呼び出しを行うことを主張したい場合は、必ずしも HtmlHelper を使用する必要はありません。プレーンな古い HTML を書くことができます:

<a href="@Url.Action("delete")" onclick="javascript:deleteSubscriber(@id)">Delete</a>

ただし、この構文の使用はお勧めしません。jQuery (およびその他の JavaScript フレームワーク) は、ハンドラーをバインドするためのより邪魔にならない方法を提供します。

<a href="@Url.Action("delete")" class="delete-btn" data-id="@id">Delete</a>

$('a.delete-btn').on('click', function(event) {
    event.preventDefault();
    // call the function
    deleteSubscriber($(this).data('id'));
});

id明らかに、これらの両方で、変数にアクセスできる何らかのループがあると想定しています。

于 2013-04-27T16:33:58.300 に答える
4

これを行うには多くの方法があります。ここではその 1 つを示します。

あなたの見解では: -

@Html.ActionLink("Delete", "Delete", new { id=//here i want to put my script  },
 new { @class = "delete-logo" });

ajax の方法で呼び出したい場合は、このようにリンクを作成できます。

<a class="delete-logo" data-key="@Model.Cin" href="javascript:void(0);"/>

脚本:-

$(function()
{
   $('.delete-logo').on('click',function(){
   //Do something to get id.
   //Get the delete button id if it is the id you want to use for deletion.
   var id = $(this).data('key'); 
   deleteSubscriber(id);
  })
});
于 2013-04-27T15:40:25.477 に答える