Как получить значение переменной JS на странице HTML в переменную Model в контроллере - PullRequest
0 голосов
/ 31 января 2019

На моей странице HTML у меня есть переменная, значение которой необходимо для заполнения переменной в моем классе Model из проекта 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);
    }

Models.cs:

public string grabTest = "";

Чего я пытаюсь достичь?

Мой LINQ требует параметра (ID) для фильтрации списка объектов.Это значение взято из переменной JS ... вы видите, где мне нужно использовать ajax для этого.

Я думал о том, чтобы использовать ajax для отправки переменной JS в actionresult для хранения значения в публичной переменной вModels.cs.

Простая идея, но мое исполнение ужасно, мысли?

1 Ответ

0 голосов
/ 01 февраля 2019

Попробуйте установить значение вашей модели в методе 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...