c# - 在 JavaScript 和 C# Controller 之间传递数据 : Asp.Net MVC 4 Razor

标签 c# javascript asp.net-mvc-4 razor

我想在我的 View 和 Controller 之间传递数据。我做错了什么,因为它不起作用。

JavaScript 前端代码:

$.ajax({
    url: '@Url.Action("GetOid","SearchPerson")',
    data:  {oid : 1},
    type: 'POST',
    contentType: 'application/json; charset=utf-8',
    success: function (data) {
        // return values 
        console.log("Success!" + data.oid); 
    },
    error: function () { console.log('error!!'); }
});

C# Controller 代码:

    int CustomerId=0;

    [HttpPost]
    public ActionResult GetOid(int Oid)
    {

        // some code here to assign the value to a global var.
        CustomerId = Oid;

        ViewBag.id = Oid;


        return Json(new { oid = CustomerId });
    }

    });

最佳答案

对您的 ajax 数据属性进行此更改。它需要作为字符串传递。

data: JSON.stringify({ "Oid": 1 }),

您的 Controller 参数和数据参数也需要相同。区分大小写。

public ActionResult GetOid(int Oid)

最后如上所述,以 json 格式返回它。

return Json(new { oid = CustomerId });

关于c# - 在 JavaScript 和 C# Controller 之间传递数据 : Asp.Net MVC 4 Razor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23642526/

相关文章:

c# - 每个请求依赖注入(inject)的用户上下文

c# - Windows Phone 8.1 语音合成器访问被拒绝?

php - 使用 php 创建 javascript 数组以从目录中获取图像

ASP.NET MVC CAPTCHA 实现

c# - 来自非 Controller 类的 ActionResult

javascript - Jquery 检查 ModelState 是否有效

javascript - 从 ASP.NET 项目中在新选项卡中打开外部链接

c# - 网页上的富文本编辑器

javascript - 如何在不使用 POST 或 GET 的情况下将用户名和密码输出输入到 MySQL 服务器

javascript - 没有延迟的 Firebase 事件