ASP MVC将textarea值转换为Html.Action

ASP MVC将textarea值转换为Html.Action,html,asp.net,asp.net-mvc,Html,Asp.net,Asp.net Mvc,我有Viev和textarea: <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> 因此,在message=之后

我有Viev和textarea:

<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>
因此,在
message=
之后,我需要在:

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

(按钮与textarea位于同一个cshtml中)以获取该textarea的值?

首先,您使用的是
Html.Action
,它使子操作在调用它的地方呈现。看起来您正在查找
Url.Action
Html.ActionLink

其次,该代码甚至都不正确。
onclick
的值必须是某个JavaScript表达式。您传递的只是一个URL,它没有引号,甚至不是有效的JavaScript。如果您添加了引号,那么它只是一个JavaScript字符串,它本身不会做任何事情

第三,我不知道你为什么要这样做,因为这里的按钮是一个提交按钮,所以假设这个按钮和字段都包装在同一个
表单
元素中,那么它就可以开箱即用了——根本不需要
onclick
或任何JavaScript


最后,您似乎不明白客户机-服务器是如何工作的。Razor(您的
@Html.Action
)在服务器端进行处理,而字段的值在服务器呈现并作为响应发送到客户端(web浏览器)之前,用户不会进行设置。因此,在用户看到表单之前,无法访问用户的输入,更不用说输入任何内容了。

尝试使用Javascript获取表单中的etextarea值,而无需调用控制器。类似于$(“input#message”).val()的内容
<button type="submit" class="btn btn-primary" onclick="@Html.Action("SendMessage", new {messsage = })">Send message</button>