使用MVC进行表单绑定并从模型中读取值

时间:2016-04-21 20:30:53

标签: c# asp.net-mvc forms razor

我在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)实际上是“我的输出”。我无法看到该视图获得的价值,因为将注意放在modelmodel.output上会导致The name 'model' does not exist in the current context之类的错误。

从表单中看起来值已正确就绪,但未正确写入表单。我该如何修复绑定?

0 个答案:

没有答案