Массив карты MVC в модели для передачи модели в контроллер - PullRequest
0 голосов
/ 05 мая 2019

У меня есть форма с несколькими кнопками ввода. В пределах этой формы кнопки могут выполнять действия. 1-й кнопкой я генерирую таблицу (объект со свойством типа int [,]). Со второй кнопкой я собираюсь сделать что-то с этим объектом. Первое в порядке, второе возвращает null для модели в контроллер. Как передать из формы этот объект с массивом внутри в контроллер? Теперь в методе SubmitForm у меня есть значение для buttonType, но матрица равна нулю (должны быть данные из таблицы). Оцените любую помощь

Модель

public class Matrix
{
    public int[,] Data { get; set; }
}

Контроллер

  [HttpPost]
   public ActionResult SubmitForm(Matrix matrix, string ButtonType) - matrix is NULL here, how to get info from form
    {
        if (ButtonType == "Rotate")
        {
            return RotateMatrix(matrix);
        }
        //other code
    }

[HttpPost]
public ActionResult RotateMatrix(Matrix matrix)
    {
       //-some code
        return PartialView("_MatrixView", matrix);
    }

View

@model Project.Models.Matrix

@{
ViewBag.Title = "Home Page";

var options = new AjaxOptions()
{
    UpdateTargetId = "Matrix",
};
}

@using (Ajax.BeginForm("SubmitForm", "Home", FormMethod.Post, options))
{
  <div id="Matrix"></div>
<input type="submit" value="Rotate" name="ButtonType" />
<input type="submit" value="Generate" name="ButtonType"/>
}

PartialView

@model Project.Models.Matrix
<table>
    @for (int column = 0; column < Model.Data.GetLength(0); column++)
    {
        <tr>
            @for (int row = 0; row < Model.Data.GetLength(1); row++)
            {
                var item = Model.Data[column, row];
                <td>@Html.DisplayFor(m => item)</td>
            }
        </tr>
    }
</table>
...