Размещать данные формы и список строк в контроллере - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь опубликовать полную форму и отдельный список строк на моем контроллере. Форма привязывается к модели, но список строк не привязывается к списку строк в контроллере и отображается как одна строка в списке.

var List = "one,two,three";
var dataToPost = $('#Form').serialize() + "&Words=" + JSON.stringify(List);
$.ajax({
   type: "POST",
   url: '/Home/Open/',            
   data: dataToPost,
   dataType: "json",
   success: function () {
      alert('ok');
   },
   error: function () {
      alert('error');
   }
});

Вот мое действие контроллера MVC:

[HttpPost]
public IActionResult Open(DataModel Model, List<string> Words)
{
   return View(Model);
}

Ответы [ 2 ]

2 голосов
/ 18 апреля 2019

Это прекрасно работает для меня:

var List = ["one", "two", "three"];
var dataToPost = $('#Form').serializeArray();
List.forEach(function (value, index) {
    dataToPost.push({ name: 'Words[]', value: value });
});
0 голосов
/ 18 апреля 2019

Пожалуйста, попробуйте следующий код, который я только что изменил ваш AJAX-вызов.

var List = "one,two,three";
    var dataToPost = $('#Form').serialize();
    $.ajax({
        type: "POST",
        url: '/Home/Open/',
        data: { fx: dataToPost, Words: List },
        dataType: "json",
        success: function () {
            alert('ok');
        },
        error: function () {
            alert('error');
        }
    });

изменить код контроллера ниже

 [HttpPost]
    public IActionResult Open(FormCollection fx, string Words)
    { 
    var lstWords = Words.Split(',').ToList();
        var val = fx["elementname"]//here you can pass input element name to get value
       return View(Model);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...