ASP MVC将textarea值赋予Html.Action

时间:2015-02-25 14:00:38

标签: html asp.net asp.net-mvc

我和textarea有Viev:

<textarea name="textareamessage" rows="10" cols="100" class="form-control" id="message" required data-validation-required-message="Please enter your message" maxlength="999" style="resize:none"></textarea>

我想通过方法将该textarea的值传递给我的控制器:

    public void SendMessage(string messsage)
    {
       ...
    }

所以我在message =之后得到的东西:

<button type="submit" class="btn btn-primary" onclick="@Html.Action("SendMessage", new {messsage = })">Send message</button>

(按钮在textarea的同一个cshtml中)到该textarea的sen值?

1 个答案:

答案 0 :(得分:2)

首先,您使用Html.Action会导致子动作在其被调用的位置呈现。看起来您正在寻找Url.ActionHtml.ActionLink

其次,该代码甚至不正确。 onclick的值必须是一些JavaScript表达式。你所传递的只是一个没有引号的URL,甚至都不是有效的JavaScript。如果您确实添加了引号,那么它只是一个JavaScript字符串,它不会自行执行任何操作。

第三,我不确定为什么你甚至这样做,因为你的按钮是一个提交按钮,所以假设这个按钮和字段都包含在同一个{{1}中}元素,然后它开箱即用 - 不需要form或任何JavaScript。

最后,您似乎并不了解客户端 - 服务器的工作原理。 Razor(您的onclick)在服务器端处理,而字段的值不会被用户设置,直到服务器已经呈现并发送给客户端为止(网络浏览器)作为回应。因此,在用户看到表单之前无法访问用户的输入,更不用说输入任何内容了。