コントローラからビューにデータを渡す方法のように、ViewModelsを使用してこれを行うことができます。
このようなビューモデルがあると仮定します
public class ReportViewModel
{
public string Name { set;get;}
}
GETアクションでは、
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)
{
}
編集: コメントによる
別のコントローラーに投稿する場合は、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" />
}