Ви можете зробити це за допомогою ViewModels, наприклад, як ви передавали дані з контролера для перегляду.
Припустимо, у вас є така модель перегляду
public class ReportViewModel
{
public string Name { set;get;}
}
і у вашому GET Action,
public ActionResult Report()
{
return View(new ReportViewModel());
}
і ваш погляд повинен бути чітко набраний ReportViewModel
@model ReportViewModel
@using(Html.BeginForm())
{
Report NAme : @Html.TextBoxFor(s=>s.Name)
<input type="submit" value="Generate report" />
}
і у вашому методі дії HttpPost у вашому контролері
[HttpPost]
public ActionResult Report(ReportViewModel model)
{
}
АБО просто, ви можете зробити це без класів POCO (Viewmodels)
@using(Html.BeginForm())
{
<input type="text" name="reportName" />
<input type="submit" />
}
а у своїй дії HttpPost використовуйте параметр з тим самим іменем, що і ім’я текстового поля.
[HttpPost]
public ActionResult Report(string reportName)
{
}
EDIT: Відповідно до коментаря
Якщо ви хочете розмістити повідомлення на іншому контролері, ви можете використовувати це перевантаження методом BeginForm.
@using(Html.BeginForm("Report","SomeOtherControllerName"))
{
<input type="text" name="reportName" />
<input type="submit" />
}
Передача даних із методу дії для перегляду?
Ви можете використовувати ту саму модель подання, просто встановіть значення властивостей у своєму методі дії GET
public ActionResult Report()
{
var vm = new ReportViewModel();
vm.Name="SuperManReport";
return View(vm);
}
і на ваш погляд
@model ReportViewModel
<h2>@Model.Name</h2>
<p>Can have input field with value set in action method</p>
@using(Html.BeginForm())
{
@Html.TextBoxFor(s=>s.Name)
<input type="submit" />
}