jquery - 我如何接收帖子 Values MVC3 (Jquery Ajax)

标签 jquery vb.net asp.net-mvc-3

我对 MVC 和这种编程很陌生,我想这很简单,但经过 5 个小时的搜索和尝试,我感觉自己被打败了。我的 View 中有一个帖子,如下所示;

 $.ajax({
        url: '@Url.Action("Moo")',
        type: "post",
        dataType: "string",
        contentType: "json",
        data: JSON.stringify({"foo": "bar"}),
        success: function (data) {}
        });
    });

然后我在 Controller 中有一个如下所示的函数;

Function Moo(test As String) As ActionResult
    Return View()
End Function

当我运行它时,调试器显示我到达了 Return-statement,但我没有得到任何分配任何值的测试(foo:bar)。

我要考虑的另一个问题是,当我设法从 ajax 函数接收数据时,我可以将其转换回 JSON,还是必须在模型中创建自己的类并将变量分配给该类?

任何意见都会被采纳。

最佳答案

参数/属性名称应该匹配。

因此,如果您希望在操作中得到名称为 test 的值,则需要使用键 test 发送该值。因此将 foo 更改为 test:

$.ajax({
        url: '@Url.Action("Moo")',
        type: "post",
        dataType: "string",
        contentType: "application/json",
        data: JSON.stringify({"test": "bar"}),
        success: function (data) {}
        });
    });

注意 JSON 的正确 contentType 是 application/json

如果您有更复杂的数据,例如 JSON.stringify({"test": "bar", "test1":"bar1"}), 您可以在服务器端创建一个对象(抱歉是 C#)

public class MyClass
{
    public string test { get; set; }

    public string test1 { get; set; }
}

然后您可以在您的操作中使用此模型:

Function Moo(test As MyClass) As ActionResult
    Return View()
End Function

MVC 模型绑定(bind)器将解析数据并填充属性。您可以在此处开始了解模型绑定(bind):The Features and Foibles of ASP.NET MVC Model Binding

关于jquery - 我如何接收帖子 Values MVC3 (Jquery Ajax),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14556441/

相关文章:

javascript - 更改 yii2 中的工具提示大小

javascript - jQuery 自定义滚动条插件不随 horizo​​ntalScroll 更新 : true

html - 在 Windows 窗体上显示 HTML 内容的最佳方式是什么?

C# 下划线作为 VB.NET 的参数

entity-framework - 使用 Entity Framework (.edmx 模型)和 Razor View 创建 MVC3 下拉列表&& 将数据库记录插入多个表

javascript - HTML5 和 jQuery LocalStorage

jQuery 无法获取 UL 元素的自定义属性

vb.net - 我可以在 Ubuntu 上为 Visual C++ 和 Visual Basic 编写代码吗?

c# - ActionLinks 的 MVC 动态路由值

javascript - 在 asp.net mvc 3 上使用 iframe 创建编辑器