Как отправить данные с одной страницы на другую страницу, используя asp.net mvc

#asp.net #asp.net-mvc #asp.net-mvc-2

#asp.net #asp.net-mvc #asp.net-mvc-2

Вопрос:

У меня есть две страницы с двумя сетками,

на моей первой странице у меня есть 10 редактируемых строк. и у меня есть одна кнопка next.

Мне нужно перенести все эти отредактированные значения 10 строк на следующую страницу, чтобы сохранить отредактированные значения в других идентификаторах переменных на следующей странице. каков наилучший способ использовать ситуации такого типа

Спасибо

Ответ №1:

Разместите редактируемые строки внутри <form> в первом представлении

 // BeginForm will render a <form> around the rowmodel HTML
using (Html.BeginForm('PostToMe', 'MyController')) {
    foreach (RowModel row in Model) {
        // HTML to render out a row
    }
}
  

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

 public class RowModel
{
    // properties here
}
  

Наконец, отправьте коллекцию этих типов в действие контроллера. например

 public class MyController : Controller
{
    [HttpPost]
    public ActionResult PostToMe(IList<RowModel> rows)
    {
        // do something with rows
    }
}
  

Ответ №2:

В ASP.NET В MVC нет понятия Страницы. Существуют контроллеры, действия и представления. Так что, вероятно, вы говорите о том, как заставить представление отправлять информацию в действие контроллера. Ну, есть несколько способов. Один из них заключается в генерации HTML <form> в этом представлении, заполнении его элементами ввода и указании этого атрибута действия формы на целевое действие:

 <% using (Html.BeginForm("TargetAction", "SomeController")) { %>
    ... some input fields, maybe in a grid, whatever
    <input type="submit" value="GO" />
<% } %>
  

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