Asp.net mvc 如何为Ajax.ActionLink调用操作方法获取用户输入?

Asp.net mvc 如何为Ajax.ActionLink调用操作方法获取用户输入?,asp.net-mvc,Asp.net Mvc,假设我想使用ajax操作链接保存一个字段,而不更改视图 这是我的视图(它是绑定到类型模型的强类型视图): 问题是:我无法在文本框中获取Mycomment in action方法的用户输入。无论用户在浏览器中为Mycomment输入什么,当单击Ajax ActionLink SAVE时,我检查Mycomment的param model中的值,Mycomment没有任何更改 令人困惑的是:模型应该绑定到双向视图。但就这件事而言,似乎并非如此。 然后我将Ajax.ActionLink调用更改为: Aj

假设我想使用ajax操作链接保存一个字段,而不更改视图

这是我的视图(它是绑定到类型模型的强类型视图):

问题是:我无法在文本框中获取Mycomment in action方法的用户输入。无论用户在浏览器中为Mycomment输入什么,当单击Ajax ActionLink SAVE时,我检查Mycomment的param model中的值,Mycomment没有任何更改

令人困惑的是:模型应该绑定到双向视图。但就这件事而言,似乎并非如此。 然后我将Ajax.ActionLink调用更改为:

Ajax.ActionLink("SAVE", "SaveComment", "Home",
       new {commentinput =Model.MyComment, new AjaxOptions { HttpMethod = "POST"})
然后将操作方法签名更改为:

public void SaveComment(string commentinput)
我仍然无法获取用户输入


如何在控制器操作方法中获取用户输入?

AFAIK Ajax.ActionLink不允许您轻松获取表单值并使用Ajax发布它们。有一些看起来很粗糙(看最后一段动态修改URL让我哭了)

以下是jQuery方式(与MS Ajax相比,我更喜欢它):


谢谢但是我的视图是一个表,是针对表中的每一行的。
Ajax.ActionLink("SAVE", "SaveComment", "Home",
       new {commentinput =Model.MyComment, new AjaxOptions { HttpMethod = "POST"})
public void SaveComment(string commentinput)
<%= Html.TextBox("myComment", Model.MyComment) %>
<%= Html.ActionLink("SAVE", "SaveComment", "Home", new { id = "saveComment" }) %>
$(function() {
    $('a#saveComment').click(function(evt) {
        $.ajax({
            url : this.href,
            data: {
                // Assuming your model has a property called MyComment
                myComment: $('#myComment').val()
            },
            success: function(data, textStatus) {
                // Comment saved successfully
            }
        });
        evt.preventDefault();
    });
});