2010-06-14 70 views
3

如果我有我的观点一个文本框:ASP.NET MVC - 如何从我的视图中的文本框中获取值?

<div><%= Html.TextBox("Comments", Model.Comments)%></div>

我想这个文本框的内容发布到与Ajax调用控制器。我只需要这一个值,所以我不想把整个表格都发回去。

<%= Ajax.ActionLink("update", "UpdateComments", 
       new { comments = /* ????? */ }, 
       new AjaxOptions { HttpMethod="POST" })%> 

如何获取文本框的值?

+0

Ajax.ActionLink是一个辅助函数,它生成一个启用JS的链接,通过AJAX发送数据。因为它是在服务器端生成的,并且该值是在客户端生成的,所以不能传递这样的单个值。您必须手动编写HTML和JS,或者提交包含此元素的整个表单(并注意不要将其嵌套到另一个表单中)。 – AlexanderMP 2010-06-14 12:20:53

+0

@Alexander:这是这里最有用的评论。你应该提交它作为答案。 – fearofawhackplanet 2010-06-14 12:59:47

回答

1

Ajax.ActionLink是一个辅助函数,它生成一个支持JS的链接,通过AJAX发送数据。因为它是在服务器端生成的,并且该值是在客户端生成的,所以不能传递这样的单个值。您必须手动编写HTML和JS,或者提交包含此元素的整个表单(并注意不要将其嵌套到另一个表单中)。

2

您应该使用客户端Ajax(例如jQuery)来获取文本框的运行时值并发布该值,而不是编写服务器端ajax代码。

+0

当你说“应该”时,有没有理由说明我尝试的方式是错误的,或者你认为这不是最简单的方法? – fearofawhackplanet 2010-06-14 13:21:10

+0

这并不容易。服务器代码更多地是关于请求处理和响应发送,客户端负责**请求。在这种情况下,您不希望使用表单的整页POST,所以Ajax POST是一个合适的选择(并且jQuery使它更容易)。 – 2010-06-14 16:08:56

0

你可以在jQuery中使用Ajax。像这样

function FunctionName() { 
     $.Post(URl, function(data) { 

     }); 
    } 
2

使用jQuery,您可以通过以下方式检索值。

$("#Comments").val(); 
相关问题