C# 如何使用json将数据传递给ajax函数?

C# 如何使用json将数据传递给ajax函数?,c#,jquery,json,ajax,asp.net-mvc,C#,Jquery,Json,Ajax,Asp.net Mvc,我需要从URL中获取id,从文本框中获取注释值,将其保存到数据库,并使用ajax在页面上显示。 我不确定我的控制器和ajax函数的语法应该如何正确 控制器 [HttpPost] public JsonResult AddComment(int id, string comment) { if (ModelState.IsValid) { return Json(true); // what should be here

我需要从URL中获取id,从文本框中获取注释值,将其保存到数据库,并使用ajax在页面上显示。 我不确定我的控制器和ajax函数的语法应该如何正确

控制器

 [HttpPost]
    public JsonResult AddComment(int id, string comment)
    {
        if (ModelState.IsValid)
        {
            return Json(true); // what should be here 
        }
        return Json(true);
    }
阿贾克斯


这只是告诉我它是有效的,但我不知道如何前进

根据您的要求,您必须在客户端进行适当的表单处理,以便获得变量,如
id
注释
。您可以使用强类型模型绑定来获取表单值并在提交时处理它们,也可以使用JavaScript技术来处理表单变量。要从URL中提取
id
,可以使用
正则表达式或其他JavaScript字符串解析技术。我举一个简单的例子,使用JavaScript从URL获取
id
,并从文本框中获取
注释

您的输入控件如下所示:

<input type="text" id="commentBox" name="Comment" class="form-control" />

根据您的要求,您必须在客户端进行适当的表单处理,以便获得变量,如
id
注释
。您可以使用强类型模型绑定来获取表单值并在提交时处理它们,也可以使用JavaScript技术来处理表单变量。要从URL中提取
id
,可以使用
正则表达式或其他JavaScript字符串解析技术。我举一个简单的例子,使用JavaScript从URL获取
id
,并从文本框中获取
注释

您的输入控件如下所示:

<input type="text" id="commentBox" name="Comment" class="form-control" />

我的解决方案如下所示:

using System.Web.Script.Serialization;

[HttpPost]
public JsonResult AddComment(string json)
{
    if (ModelState.IsValid)
    {
        var serializer = new JavaScriptSerializer();
        dynamic jsondata = serializer.Deserialize(json, typeof(object));

        //Get your variables here from AJAX call
        string id= jsondata["id"];
        string comment=jsondata["comment"];

        // Do something here with your variables. 
    }
    return Json(true);
}
控制器:

       [HttpPost]
    public JsonResult AddComment(int id_usr,string comment)
    {
        if (ModelState.IsValid)
        {
            Comments kom = new Comments();
            kom.DateComment = DateTime.Now;
            kom.Id_usr = id_usr;
            kom.Comment = comment;
            db.Comments.Add(kom);
            db.SaveChanges();
            return Json(kom);
        }
        return Json(null);

    }
看法


感谢大家引导我找到解决方案

我的解决方案如下所示:

using System.Web.Script.Serialization;

[HttpPost]
public JsonResult AddComment(string json)
{
    if (ModelState.IsValid)
    {
        var serializer = new JavaScriptSerializer();
        dynamic jsondata = serializer.Deserialize(json, typeof(object));

        //Get your variables here from AJAX call
        string id= jsondata["id"];
        string comment=jsondata["comment"];

        // Do something here with your variables. 
    }
    return Json(true);
}
控制器:

       [HttpPost]
    public JsonResult AddComment(int id_usr,string comment)
    {
        if (ModelState.IsValid)
        {
            Comments kom = new Comments();
            kom.DateComment = DateTime.Now;
            kom.Id_usr = id_usr;
            kom.Comment = comment;
            db.Comments.Add(kom);
            db.SaveChanges();
            return Json(kom);
        }
        return Json(null);

    }
看法


感谢大家指导我找到解决方案

您的代码到底有什么问题?如何在客户端检索放入请求的数据?如何阅读动作中的参数?是的,这是正确的。我不知道怎么办那样的话,你的问题太宽泛了。我建议将这些任务分解,并分别进行研究。即。关于在C#中保存到数据库,我们需要知道您使用的是什么数据库管理系统,以及如何与之通信,但同样地,只需研究这些关键字,您就会找到答案。您可以显示url和输入字段的示例以供评论吗?@Dodsonnn您使用了吗?您的代码到底有什么问题?如何在客户端检索放入请求的数据?如何阅读动作中的参数?是的,这是正确的。我不知道怎么办那样的话,你的问题太宽泛了。我建议将这些任务分解,并分别进行研究。即。关于用C#保存到数据库,我们需要知道您使用的是什么数据库管理系统,以及如何与之通信,但同样地,只需研究这些关键字,您就会找到答案。您能展示url和输入字段的示例以供评论吗?@Dodsonnn,您是否能做到这一点?正如@Rahul Sharma所说,您也可以从id的强类型模型属性(如果存在)获取id,而不必从url读取,如:
var id=@model.id
。这个jQuery必须在页面中,而不是在外部文件中。正如@Rahul Sharma所说,您也可以从id的强类型模型属性(如果存在)中获取id,而不必从url读取,如:
var id=@model.id
。此jQuery必须在页面中,而不是在外部文件中。