我有一个带有文本框的简单表单(以及我想在特定情况下呈现的模型编辑器)
@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”,并且此模型被传递到同一视图。
我希望文本框是“真”,但它仍然是“假”......而且 Preview 属性被正确渲染,所以这意味着 Model.IsConfirmed 确实是真的......
我错过了什么吗?
谢谢