使用 Javascript 在 MVC 中为 Post 方法创建一个 ViewModel

凯文

我正在尝试创建一个局部视图,它是用于创建新的 ProductionGoal 模型的提交表单。它使用 ProductionLineViewModel 来创建它。

我的主要问题是如何将该数据传递到我的 CreateNewProductionGoal 控制器方法中。我写了一些粗略的 JS,但我还是 JS 的新手,并不确定我在做什么。我使用此链接作为编写我的 JS 的基础:如何将数据从 ViewModel 发布到控制器方法中?

目前,当我按下按钮时,不会调用 CreateNewProductionGoal 方法我想知道我是否需要添加一些东西来实现它,或者我是否有其他错误。

<input id="submit" type="button" class="button" value="Submit" onclick="onClick();">

function onClick() {
    alert("I am an alert box!");

    var Employees = $("#productiongoal-text").data("kendoNumericTextBox").value();
    var ProdLineId = $("#productionLine-dropdown").data("kendoDropDownList").value();
    var ProductionGoalViewModel = { "NumberOfEmployees": Employees, "ProductionLineId": ProdLineId };
    var requestData = {}
    var data = { request: requestData, pgvm: ProductionGoalViewModel }

    $.ajax({
        type: 'post',
        url: "ProductionLine/CreateNewProductionGoal",
        dataType: "json",
        data: data,  //Creating a ProductionGoalViewModel to pass into the CreateNewProductionGoal method
        success: function (data) {
            location = location;  //Refreshes the page on button press
        }
    });

}

[HttpPost]
    public ActionResult CreateNewProductionGoal([DataSourceRequest] DataSourceRequest request, ProductionGoalViewModel pgvm)
    {
        if (pgvm != null && ModelState.IsValid)
        {
            ProductionGoal pg = new ProductionGoal();
            pg.NumberOfEmployees = pgvm.NumberOfEmployees;
            pg.NumberOfUnits = _prodLineService.Find(pgvm.ProductionLineId).UPE * pgvm.NumberOfEmployees;
            pg.ProductionLineId = pgvm.ProductionLineId;
            pg.ProdLine = _prodLineService.Find(pgvm.ProductionLineId);
            pgvm.NumberOfUnits = pg.NumberOfUnits;
            pgvm.Id = pg.Id;
            pgvm.CreatedAt = pg.CreatedAt;
            _prodGoalService.Insert(pg);
        }
        return Json(new[] { pgvm }.ToDataSourceResult(request, ModelState));
    }

我希望按下按钮将具有 NumberOfEmployees 和 ProductionLineId 的视图模型传递给 CreateNewProductionGoal 方法。

如果需要,我可以尝试澄清更多。

编辑:

var ProductionGoalViewModel = { "NumberOfEmployees": Employees, "ProductionLineId": ProdLineId };
var data = { pgvm: ProductionGoalViewModel }

data: data,

编辑2:

我现在确定它与我的按钮没有调用 onClick() 方法有关。我在该方法中放置了一个警报,可能应该在不久前完成此操作,并且该警报永远不会显示。有什么建议么?

<input id="submit" type="button" class="button" value="Submit">

function onClick() {
    var Employees = $("#productiongoal-text").data("kendoNumericTextBox").value();
    var ProdLineId = $("#productionLine-dropdown").data("kendoDropDownList").value();
    var ProductionGoalViewModel = { "NumberOfEmployees": Employees, "ProductionLineId": ProdLineId };
    var data = { pgvm: ProductionGoalViewModel }

    alert("I am an alert box!");

    $.ajax({
        type: 'post',
        url: "ProductionLine/CreateNewProductionGoal",
        dataType: "json",
        data: data,  //Creating a ProductionGoalViewModel to pass into the CreateNewProductionGoal method
        success: function (data) {
            location = location;  //Refreshes the page on button press
        }
    });

}

编辑 3:我想出了为什么我的按钮永远无法调用 JS 函数。我的按钮是在局部视图中定义的,调用局部视图的视图不包含正在调用的脚本。非常令人沮丧,但我很高兴我现在实际上能够用我的按钮调用一些东西。但是,我仍然无法调用 CreateNewProductionGoal 方法。我已经更新了原始代码以匹配我目前拥有的代码。

塞尔蒂安

你的代码在我看来都是正确的。使用 JS 时,请确保标签“#___”正确匹配。很多时候,意识到这一点可能会令人头疼。

同样正如上面提到的 Hafiz,您需要传递两个参数。

var requestdata ={ };
var pgvmdata = { "NumberOfEmployees": Employees,
                "ProductionLineId": ProdLineId };

var data = {request:requestdata ,pgvm:pgvmdata}
$.ajax({
        url: "/ProductionLine/CreateNewProductionGoal",
        type: 'post',
        dataType: "json",
        data: data,
        success: function (data) {
            location = location;  //Refreshes the page on button press
        }
    });

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在ViewModel中包含List属性的Post Back List之后的ASP.NET MVC为空

来自分类Dev

如何创建一个在ASP.NET MVC中接收字符串列表的POST方法?

来自分类Dev

使用子ViewModel创建一个ViewModel

来自分类Dev

在一个 POST 中创建父对象和子对象 - MVC Core

来自分类Dev

在MVC 4中从ViewModel创建下拉列表

来自分类Dev

如何使用 JavaScript 在另一个表中创建一个表?

来自分类Dev

在MVC的ViewModel中仅使用Model中的一些属性

来自分类Dev

从MVC“意外令牌&”中的ViewModel进行Javascript JSON解析

来自分类Dev

如何在带有实体框架4.0的MVC4中使用ViewModel模拟方法

来自分类Dev

如何在带有实体框架4.0的MVC4中使用ViewModel模拟方法

来自分类Dev

使用javascript为数据库中的每个项目创建一个链接到html页面的按钮

来自分类Dev

如何存储ViewModel中的值以在POST中使用

来自分类Dev

在Javascript中为价格创建一个奇特的计算?

来自分类Dev

为什么MVC Post(ViewModel)不能使用Async返回更新的表单?

来自分类Dev

使用JavaScript为每个输入的JSON对象创建一个按钮

来自分类Dev

使用JavaScript中的循环从一个对象创建两个对象时出错

来自分类Dev

使用 javascript for 循环在一个网页中创建 100 个小型 iframe

来自分类Dev

创建Viewmodel以发布数据并在MVC 4中显示数据

来自分类Dev

MVC-使用ViewModel在部分视图中填充数据库中的两个下拉列表

来自分类Dev

猫鼬-使用post方法创建一个新的空集合

来自分类Dev

在另一个 Python 脚本中使用 POST 方法创建 Django 模型实例

来自分类Dev

使用JavaScript中的另一个数组创建数组

来自分类Dev

你如何创建一个使用JavaScript中的变量的for循环?

来自分类Dev

使用键在Javascript中创建一个空的二维数组

来自分类Dev

如何在另一个JavaScript中创建然后使用自己的函数

来自分类Dev

使用元素的值及其在JavaScript中重复的次数创建一个子数组数组

来自分类Dev

如何使用Javascript在HTML中创建一个完整的块

来自分类Dev

在 Javascript 中,如何使用另一个数组创建新数组

来自分类Dev

如何使用 MVC 在 ViewModel 中使用 PaginatedList

Related 相关文章

  1. 1

    在ViewModel中包含List属性的Post Back List之后的ASP.NET MVC为空

  2. 2

    如何创建一个在ASP.NET MVC中接收字符串列表的POST方法?

  3. 3

    使用子ViewModel创建一个ViewModel

  4. 4

    在一个 POST 中创建父对象和子对象 - MVC Core

  5. 5

    在MVC 4中从ViewModel创建下拉列表

  6. 6

    如何使用 JavaScript 在另一个表中创建一个表?

  7. 7

    在MVC的ViewModel中仅使用Model中的一些属性

  8. 8

    从MVC“意外令牌&”中的ViewModel进行Javascript JSON解析

  9. 9

    如何在带有实体框架4.0的MVC4中使用ViewModel模拟方法

  10. 10

    如何在带有实体框架4.0的MVC4中使用ViewModel模拟方法

  11. 11

    使用javascript为数据库中的每个项目创建一个链接到html页面的按钮

  12. 12

    如何存储ViewModel中的值以在POST中使用

  13. 13

    在Javascript中为价格创建一个奇特的计算?

  14. 14

    为什么MVC Post(ViewModel)不能使用Async返回更新的表单?

  15. 15

    使用JavaScript为每个输入的JSON对象创建一个按钮

  16. 16

    使用JavaScript中的循环从一个对象创建两个对象时出错

  17. 17

    使用 javascript for 循环在一个网页中创建 100 个小型 iframe

  18. 18

    创建Viewmodel以发布数据并在MVC 4中显示数据

  19. 19

    MVC-使用ViewModel在部分视图中填充数据库中的两个下拉列表

  20. 20

    猫鼬-使用post方法创建一个新的空集合

  21. 21

    在另一个 Python 脚本中使用 POST 方法创建 Django 模型实例

  22. 22

    使用JavaScript中的另一个数组创建数组

  23. 23

    你如何创建一个使用JavaScript中的变量的for循环?

  24. 24

    使用键在Javascript中创建一个空的二维数组

  25. 25

    如何在另一个JavaScript中创建然后使用自己的函数

  26. 26

    使用元素的值及其在JavaScript中重复的次数创建一个子数组数组

  27. 27

    如何使用Javascript在HTML中创建一个完整的块

  28. 28

    在 Javascript 中,如何使用另一个数组创建新数组

  29. 29

    如何使用 MVC 在 ViewModel 中使用 PaginatedList

热门标签

归档