Передача параметра в jquery с использованием ajax mvc3 .net - PullRequest
1 голос
/ 19 декабря 2011

Я создаю backoffice для определенного сайта, и здесь мне нужно удалить комментарии из базы данных, используя ajax, проблема в том, что я не могу передать идентификатор, который хочу скрыть после удаления в jquery в ajax.Ниже приведен код для комментариев:

<% foreach (var item in Model) { %>
    <div class="row" id = "row<%= item.CommentID %>">
        <div class="editor-label detail">Comment</div>
        <div class="form-element"><%: Html.DisplayFor(modelItem => item.Text) %></div>
        <div class="editor-label detail">Date</div>
        <div class="form-element"><%: Html.DisplayFor(modelItem => item.Date) %></div>
        <div class="form-element">
        <div class="button delete"><%: Ajax.ActionLink("Delete", "Deletecomment", new { id = item.CommentID }, new AjaxOptions { HttpMethod = "POST", OnSuccess = "deleteRow" })%></div>
        </div>
    </div>
<% } %>

это код для контроллера:

[AcceptVerbs(HttpVerbs.Post)]
        public ActionResult Deletecomment(int id)
        {
            cr.Delete(cr.getComment(id)); //cr is the conx to the repository
            cr.Save();

            return View("Index");
    }

это мой jquery

function deleteRow() {
    var url_ = this.url.split("/");
    $("#row" + url_[url_.length - 1]).remove();
}

что у меня естьdone - берет URL-адрес и разделяет его, чтобы взять id записи в db, затем добавить его в форму как id и затем удалить этот id, но я уверен, что есть лучшее решение

Ответы [ 2 ]

2 голосов
/ 19 декабря 2011

вы не можете динамически передать идентификатор для обратного вызова:

new AjaxOptions { HttpMethod = "POST", OnSuccess = "function(){ return deleteRow('" + item.CommentID + "');" }

function deleteRow(id) {
    $("#row" + id).remove();
}
1 голос
/ 19 декабря 2011

Если вы используете ненавязчивый ajax-скрипт jquery, вы можете передать параметры в обратный вызов:

<%= Ajax.ActionLink(
    "Delete", 
    "Deletecomment", 
    new { 
        id = item.CommentID 
    }, 
    new AjaxOptions { 
        HttpMethod = "POST", 
        OnSuccess = "deleteRow('#row" + item.CommentID + "')" 
    }
) %>

и затем:

function deleteRow(row) {
    $(row).remove();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...