将js变量发送到mvc控制器

时间:2019-01-04 14:28:53

标签: javascript model-view-controller

How to send js variables to mvc controller

我正在尝试得出-ramiramilu提供的代码作为上述问题的答案。

但是,似乎控制器中的输出仍然为0。

模型和视图与答案所建议的相同。 但是,由于我在MVC中使用点网核心,因此控制器端的代码看起来像-

控制器代码-

[Route("api/[controller]")]
[ApiController]
public class PieController : Controller
{
    [HttpGet]
    public IActionResult Index()
    {
        return View();
    }

    public ViewResult GetChartDetails(PieConcs piecord)
    {
        return null;
    }
}

JavaScript代码-

 函数sendJson(){

    var model = new Object();
    model.x1 = 120;
    model.y1 = 240;
    model.x2 = 360;
        model.y2 = 480;
        alert('here');


    jQuery.ajax({
        type: "POST",
        url: "@Url.Action("GetChartDetails")",
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        data: JSON.stringify({ piecord: model }),
        success: function (data) {
            alert(data);
        },
        failure: function (errMsg) {
            alert(errMsg);
        }
    });
}

模型类-

public class PieConcs
{
    public int x1 { get; set; }
    public int x2 { get; set; }
    public int y1 { get; set; }
    public int y2 { get; set; }
}

用于查看的代码写在Index.cshtml文件中。 我是MVC的新手,所以如果需要更多详细信息以改善问题,请告诉我。

1 个答案:

答案 0 :(得分:0)

在您的JavaScript中执行以下操作:

let dataToSend = {
        objectProp1: ...,
        objectProp2: ...,
        ...
    }

    fetch('Pie/GetCharDetails', {
        method: 'POST',
        headers: {
            "Content-Type": "application/json"
        },
        body: JSON.stringify(dataToSend)
    }).then(response => response.json());

请记住,对象道具的名称必须与PieConcs道具的名称相同。