ASP MVC将textarea值转换为Html.Action
我有Viev和textarea: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=之后
<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>