【问题标题】:How do i get a JS variable value in an HTML page onto a Model variable in the the controller如何将 HTML 页面中的 JS 变量值获取到控制器中的模型变量上
【发布时间】:2019-01-31 13:20:58
【问题描述】:

在我的 HTML 页面中,我有一个变量,它的值需要从 MVC 项目中填充模型类中的变量。

我怎样才能用几行代码完成这个?

这是我尝试过的:

Index.cshtml:

var mana = document.getElementById("ID").value;
var MyAction = '@Url.Action("MyAction", "Home")';

$.ajax({
    type: "POST",
    url: MyAction,
    data: { 'myVar': mana },
    success: function (result) {
        $('#ResultsDiv').html(result);
        @{
            var inventoryObj = Model.InventoryDataList.Where(x => x.ID == Int32.Parse(Model.grabTest)).Select(x => x.DAYOFWEEK);
            var inventoryJson = new JavaScriptSerializer().Serialize(inventoryObj);

          }

        var inventoryRefined = JSON.parse('"@inventoryJson"');
        var InventoryDataList = JSON.parse(htmlDecode(inventoryRefined));
        console.log(InventoryDataList);
    }

});

HomeController.cs:

public ActionResult MyAction(Models model, string myVar)
    {

        model.grabTest = myVar;
        //My Action Code Here
        return Json(true, JsonRequestBehavior.AllowGet);
    }

模型.cs:

public string grabTest = "";

我想要完成什么?

我的 LINQ 需要一个参数 (ID) 来过滤对象列表。 这个值来自一个 JS 变量......你看我需要在哪里使用 ajax。

我的想法是使用 ajax 将 JS 变量发送到 actionresult 以将值存储在 Models.cs 中的公共变量中。

简单的想法,但我的执行很糟糕,想法?

【问题讨论】:

  • 可能重复。看看这是否对您有帮助:stackoverflow.com/a/22167353/2343826
  • 好的,我想我明白你的意思了,但是,这是唯一的方法吗?有没有更简单的方法?
  • 查看是否有助于更改您的 ajax 数据道具以使用 JSON 字符串化 data: JSON.stringify({ myVar: mana })
  • 你可以添加到你的 ajax 函数:dataType: 'json'contentType: 'application/json;charset=utf-8' 所以它知道如何处理请求
  • @Fraze 我得到了与更改之前相同的异常,'值不能为空'

标签: javascript c# ajax asp.net-mvc


【解决方案1】:

尝试在MyAction 方法中设置模型的值,而不是将其声明为参数

为此,请在代码块内声明您的类 Models 的新实例,从那时起,您现在可以将 myVar 参数值分配给您的 Models 实例

public ActionResult MyAction(string myVar)
{
   var myModel = new Models();
   myModel.grabTest = myVar;
   //My Action Code Here

   return Json(true, JsonRequestBehavior.AllowGet);
}

【讨论】:

    猜你喜欢
    • 2020-05-08
    • 2023-03-13
    • 2012-01-17
    • 2016-06-05
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    • 2019-02-26
    • 2020-03-17
    相关资源
    最近更新 更多