#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" />
<% } %>
Если вы хотите выбрать определенную строку в таблице, вы можете сгенерировать форму для каждой строки в этой таблице и использовать идентификатор элемента в качестве скрытого поля.