JQuery с asp.net MVC диалоговое окно - PullRequest
1 голос
/ 25 августа 2009

У меня есть HTML-ссылка, по которой я хочу открыть диалоговое окно со списком имен пользователей и флажками. пользователь может затем установить один или несколько флажков и нажать «ОК», и эта информация будет возвращена в основной графический интерфейс пользователя. это возможно с помощью JQuery или я должен использовать другую технологию?

1 Ответ

3 голосов
/ 25 августа 2009

Нет, jQuery - идеальный инструмент для этого.

Все, что вам нужно сделать, это отправить обратно на свой ActionResult в вашем контроллере, вернуть ваши данные [или даже лучше частичное представление] и отобразить их на странице.

Если вам нужен пример кода, дайте мне знать, и я выложу немного.

Но по сути вам нужно сделать $.post("/controller/action", {arg1:val1, arg2:val2}, function(retHtml){ code to show data });

В вашем контроллере что-то вроде этого;

public ActionResult action(string arg1, string arg2)
{
  //Do guff
  return PartialView("MyPartialView", FormViewModel);
}

Если вам нужен пример объяснения, дайте мне знать в комментарии.

EDIT:

Код, который я дал, на самом деле достаточно полон, но давайте немного его уточним и упростим. Есть лучшие способы сделать это, но это легко и удобно читать, если вы новичок в jQuery.

Начнем с просмотра;

Вы произнесете кнопку таким образом:

<input id="submitBtn" name="submitBtn" type="submit" onclick="postComment(<%=Model.Id %>); return false;" value="Submit" />

Тогда у вас есть код jQuery для отправки обратно, вот так;

function postComment(id) {
        var commentText = jQuery.trim($("#textbox_ + id.toString()).val());
        $.post("/Articles/jQueryAddComment", { commentText: commentText, id: id, }, function(newCommentListHTML) {
            AddCommentReturn(id, commentType, newCommentListHTML);
        });
    }

То, что делает приведенный выше код, - это просто захват текста комментария, скажем, из поля, и отправка обратно в мой контроллер действия jQueryAddComment и передача нескольких переменных.

В моем контроллере теперь есть;

public ActionResult jQueryAddComment(string commentText, int id)
{
  //code here to add the new comment to the database.

  //more code to get the new list of comments from the database and into a model

  //code to return a partial view back to the view itself
  return PartialView("CommentList", fvm);

}

Обратный вызов в приведенном выше коде jQuery вызывает обычную функцию Javascript, чтобы взять возвращенный HTML и отобразить его на странице.

В вашем случае вы должны показать Div с HTML-кодом в нем и предоставить ему события щелчка, чтобы пользователь мог взаимодействовать с ним.

Это понятнее?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...