繁体   English   中英

如何在HTML页面中将JS变量值获取到控制器中的Model变量

[英]How do i get a JS variable value in an HTML page onto a Model variable in the the controller

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

我如何用几行代码来完成此操作?

这是我尝试过的:

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);
    }

Models.cs:

public string grabTest = "";

我想完成什么?

我的LINQ需要一个参数(ID)来过滤对象列表。 这个值来自一个JS变量...您会看到我需要为此使用ajax的地方。

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

简单的想法,但是我的执行力太差了,想法?

尝试在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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM