Как мы можем отправить данные обратно в действие контроллера из Javascript - PullRequest
0 голосов
/ 17 декабря 2009

У меня есть модальное диалоговое окно, которое открывало бы клик по ссылке на странице. От JS теперь мне нужно будет отправить некоторые значения в контроллер. Но я не могу использовать форму, откуда я могу отправить эти значения обратно в контроллер. Есть ли другой способ сделать это, или я говорю безумный ??

Ответы [ 3 ]

1 голос
/ 17 декабря 2009

Вы можете использовать методы, которые объясняются как «Нет возврата», «Нет возврата», но вместо того, чтобы передавать многочисленные параметры, вы можете создать свой собственный класс для передачи обратно.класс Job с параметрами Salary, Hours, Title, Department и т. д.

public class Job
{
  public float Salary {get; set;}
  public float Hours {get; set;}
  public string Title {get; set;}
  public string Department {get; set;}
}

Затем можно создать метод контроллера, который принимает объект типа Job.

public ActionResult DoSomething(Job theJob)
{}

Затем в javascript вы можете создать объект JSON с парами ключ-значение.Ключом является имя параметра.

var data = {
  Salary: 400,
  Hours: 40,
  Title: 'Developer',
  Department: 'I.T.'
};

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

0 голосов
/ 17 декабря 2009

Используя JQuery, вы можете использовать:

$. Получить $ .post $ .Ajax

И отправлять данные обратно на сервер. Все это происходит асинхронно с пользователем. Смотрите jquery.com, чтобы узнать, как его использовать, это действительно просто. Используя URL, он будет знать, какой контроллер / действие получить или опубликовать данные; это работает очень хорошо.

Get использует URL для передачи данных обратно на сервер, а post использует форму и отправляет поля формы на сервер. Так что это зависит от того, как вы хотите передать данные. Используя Html.BeginForm и Html.EndForm, вы определяете форму и содержащиеся в ней значения, которые публикуются на сервере, и все значения можно получить, указав коллекцию FormCollection в качестве параметра метода действия или тип объекта с именами методов. такие же, как свойства самого объекта, или он также передаст эти значения переменным. Он выполняет сопоставление имен для выполнения всего этого, независимо от операции get или post.

Так что это можно сделать в MVC с обратной передачей или асинхронно с использованием JQuery.

0 голосов
/ 17 декабря 2009

данные возвращаются через URL. Вы обновляете свой маршрут, чтобы определить параметры и создать свой URL для соответствия.

маршрут похож на {контроллер} / {действие} / {id} / {параметр1} / {параметр2} /

Вы также можете создать параметр перехвата, например

маршрут похож на {контроллер} / {действие} / {id} / {* параметры} /

затем создайте URL как yoursite.com/Accounts/DIsplay/Fred/june/july Параметр будет июнь / июль, который вы можете построить на своем URL.

Проверьте мой синтаксис, чтобы быть уверенным, так как я делаю это во время завтрака. :)

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