从MVC4中的表单获取数据

时间:2012-12-12 21:22:53

标签: c# asp.net asp.net-mvc-4

在我看来,我有以下HTML,是的,我知道我可以使用HTML帮助器,但在这种情况下我不能使用它,因为我允许MVC创建textarea时,我们在页面上使用的一些脚本会导致严重的问题

@Html.TextBox("name", "", new {  @placeholder = "name", @class = "formElement", @id="name"})
<textarea id="message" placeholder="comments" class="formElement"></textarea>

然后在我的控制器中,我设置了一条非常基本的行来打印出名称和信息。

    [HttpPost]
    public ActionResult Form(MessageViewModel model)
    {
        return Content("Name: " + model.name + " Message: " + model.message);
    }

名称可以访问得很好,因为它是使用HTML帮助程序创建的,但我无法访问消息,因此无法返回任何内容。名称和消息都在我的ViewModel中定义:

    public string name { get; set; }
    public string message { get; set; }

如何访问短信textarea中的文字?

2 个答案:

答案 0 :(得分:6)

您应该为textarea添加“name”属性。 html元素根据其名称发布。

<textarea id="message" name="message" placeholder="comments" class="formElement"></textarea>

答案 1 :(得分:1)

在MVC中,如果在视图中拥有适当的模型并将模型属性分配给所需的控件(如下一个示例),那么这是一个很好的实践:

@Html.TextAreaFor(m => Model.remark, 10, 5, new { style = "resize: none" })

@Html.TextAreaFor将呈现为:

<textarea cols="5" id="remark" name="remark" rows="10" style="resize: none"></textarea>

并允许在提交表单时正确发布,并且使用View发送的模型调用Controller中的Action。