2

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

@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; }

如何访问消息文本区域中的文本?

4

2 回答 2

6

您应该为 textarea 添加一个“名称”属性。html 元素是根据它们的名称发布的。

<textarea id="message" name="message" placeholder="comments" class="formElement"></textarea>
于 2012-12-12T21:25:58.433 回答
1

在 MVC ii 中,在视图中拥有适当的模型并将模型属性分配给所需的控件是一种很好的做法,例如下一个示例:

@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>

并在提交表单并使用视图发送的模型调用控制器中的操作时允许正确发布。

于 2012-12-14T08:37:46.350 回答