我在MVC中使用Razor语法实现了一个简单的表单。
@model QuisenberryMVC001.Models.ConsoleCommand
@using (Html.BeginForm())
{
<fieldset>
<legend>Product</legend>
<div class="editor-label">
@Html.LabelFor(model => model.input)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.input)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.output)
</div>
<div class="editor-field">
@Html.TextAreaFor(model => model.output)
</div>
<input type="submit" value="Run" />
</fieldset>
}
模特:
public class ConsoleCommand
{
public String input {get; set;}
public String output { get; set;}
}
此表单显示一个接受输入的文本框和一个显示输出的文本区域。我已经实现了一个控制器来准备输出。最终,这将由模型完成。
这是控制器:
[HttpPost]
public ActionResult MyConsole(ConsoleCommand command)
{
ViewBag.Message = "My Console";
command.output += "My Output";
return View(command);
}
我想单击“运行”按钮以使用文本“我的输出”更新文本区域。相反,它显示用户键入的任何值。
当我调试应用程序时,当达到command.output
时,我发现return View(command)
实际上是“我的输出”。我无法看到该视图获得的价值,因为将注意放在model
或model.output
上会导致The name 'model' does not exist in the current context
之类的错误。
从表单中看起来值已正确就绪,但未正确写入表单。我该如何修复绑定?