Как передать данные из бритвы в контроллер в MVC3? - PullRequest
2 голосов
/ 19 октября 2011

У меня есть модель, которую я использую для передачи данных из моего представления в мой контроллер, но у меня есть некоторые несвязанные с текстовыми полями и выпадающими списками. Как я могу передать эти несвязанные данные из моего представления обратно в контроллер, используя ViewData или ViewBag .... или что-то еще. Спасибо!

Ответы [ 3 ]

9 голосов
/ 19 октября 2011

Можете привести пример? Похоже, вы немного перепутали свою терминологию. Обычно вы не передаете данные из представления в контроллер, кроме как через POST/GET. Я собираюсь предположить, что это то, что вы имели в виду. Вы можете получить любые данные в метод действия вашего контроллера через параметр с тем же именем или с помощью FormCollection.

public ActionResult SomeMethod(
                       string yourUnboundTextBoxName, 
                       FormCollection colleciton) { }

По вашему мнению, это может выглядеть примерно так:

<div>
    <input type='text' name='yourUnboundTextBoxName' />
</div>

MVC автоматически примет значение yourUnboundTextBoxName и вставит это значение в параметр с тем же именем. Или вы можете использовать FormCollection и получить значение оттуда. FormCollection["yourUnboundTextBoxName"]

0 голосов
/ 20 октября 2011

Вы можете отправить модель обратно в контроллер несколькими способами. Вот только один из них. Поскольку кажется, что вы хотите отправить только несколько элементов за раз, возможно, динамически - этот подход дает вам немного контроля над тем, что отправлять обратно, а затем использует запрос .ajax () для этого.

Asp.Net MVC Передача объекта из Url.Action в представлении в контроллер

по ссылке выше:

$.ajax({
   url: '@Url.Action("ControllerActionResult")',
   type: 'POST',
   data: JSON.stringify(model), //you can serialize a form here as well OR simply put in the name value pairs of your data, ex. myTextBox='something'
   dataType: 'json',
   processData: false,
   contentType: 'application/json; charset=utf-8',
   success: OnSuccess
});

Обратите внимание на документы ajax jQuery .ajax ()

0 голосов
/ 19 октября 2011

Вы не можете передавать данные из представления в контроллер, используя ViewBag.Представление (или, по крайней мере, HTML, сгенерированный из представления) может отправлять данные обратно в контроллер с использованием форм, и связыватель по умолчанию позволит вам предоставлять объекты в качестве аргументов для метода контроллера.данных вы можете передавать массивы и т. д., используя правильные правила именования и связыватель по умолчанию.

Кроме этого вам потребуются дополнительные данные.

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