テキスト ボックス (および特定のケースでレンダリングしたいモデル エディター) を備えた単純なフォームがあります。
@using (Html.BeginForm("Import", "Flow"))
{
@Html.TextBoxFor(model => model.IsConfirmed)
@if (Model.IsConfirmed)
{
@Html.EditorFor(m => m.Preview)
}
}
このビューで使用されるモデルは次のとおりです。
public class ImportViewModel
{
public Boolean IsConfirmed { get; set; }
public PreviewViewModel Preview { get; set; }
public ImportViewModel()
{
this.IsConfirmed = false;
}
}
フォームは次のコントローラーに投稿します
public class FlowController
{
[HttpPost]
public ActionResult Import(ImportViewModel model)
{
try
{
if (ModelState.IsValid)
{
if (model.IsConfirmed)
{
// do something else
}
else
{
model.Preview = Preview(model.strCA, model.SelectedAccount);
model.IsConfirmed = true;
return View(model);
}
}
}
catch (Exception ex)
{
throw new Exception("arf", ex);
}
return RedirectToAction("Index", "Home");
}
}
最初の読み込み時に、テキストボックスに「false」が含まれています
投稿されると、モデルのプロパティ IsConfirmed が「true」に設定され、このモデルが同じビューに渡されます。
テキストボックスは「true」であると予想していますが、それでも「false」です...さらに、Preview プロパティが正しくレンダリングされているため、Model.IsConfirmed が実際に true であることを意味します...
何か不足していますか?
ありがとう