2012-12-12 105 views
2

在我看來,我有以下HTML,是的,我知道我可以使用HTML助手,但在這種情況下,我不能使用它,因爲我們在頁面上使用某些腳本會導致嚴重問題我允許MVC創建textarea。從MVC4中的表單獲取數據

@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中的文本?

回答

6

您應該爲textarea添加一個「名稱」屬性。 html元素是基於他們的名字發佈的。

<textarea id="message" name="message" placeholder="comments" class="formElement"></textarea> 
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> 

,並讓正確的發佈時提交表單,並通過查看發送的模式控制器中的動作被調用。