我和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值?
答案 0 :(得分:2)
首先,您使用Html.Action
会导致子动作在其被调用的位置呈现。看起来您正在寻找Url.Action
或Html.ActionLink
。
其次,该代码甚至不正确。 onclick
的值必须是一些JavaScript表达式。你所传递的只是一个没有引号的URL,甚至都不是有效的JavaScript。如果您确实添加了引号,那么它只是一个JavaScript字符串,它不会自行执行任何操作。
第三,我不确定为什么你甚至这样做,因为你的按钮是一个提交按钮,所以假设这个按钮和字段都包含在同一个{{1}中}元素,然后它开箱即用 - 不需要form
或任何JavaScript。
最后,您似乎并不了解客户端 - 服务器的工作原理。 Razor(您的onclick
)在服务器端处理,而字段的值不会被用户设置,直到服务器已经呈现并发送给客户端为止(网络浏览器)作为回应。因此,在用户看到表单之前无法访问用户的输入,更不用说输入任何内容了。