Нужна помощь в чтении матрицы NxN из ввода - PullRequest
0 голосов
/ 28 марта 2020

Я пытаюсь создать программу, которая будет рассчитывать SLE с помощью метода обратной матрицы, но математический алгоритм не является проблемой. На самом деле я мог бы сделать это с помощью WinForms, но так как я изучаю APS. NET Core, хочу попрактиковаться здесь.

Проблема в том, что я не могу действительно прочитать данные из матрицы, используя Html, и я Я не уверен, как он имеет смысл хранить его и где без использования базы данных. Итак, я был бы признателен, если бы вы могли помочь мне решить эти проблемы.

  1. Как прочитать данные из html ввода и поместить их в массив?
  2. Где хранить данные, в модели или контроллере?

И если вы знаете, можете ли вы рассказать мне источник или книгу, чтобы узнать больше о ASP. NET Ядро, чтобы научиться решать подобные проблемы, потому что ASP. NET Ядро для меня ново, и я обычно сталкиваюсь с некоторыми трудностями.

Здесь вы можете увидеть некоторые страницы с кодом (некоторые строки кода все еще могут быть бесполезны в контроллере, потому что я до сих пор не понял, как хранить данные)

Моя модель:

namespace MatrixMethodSLE.Models
{
    public class Sle
    {
        [Required(ErrorMessage = "Please enter a dimension for matrix!")]
        [RegularExpression(@"[2-9]\d*", ErrorMessage="Number must be more or equal 2!")]
        public int Dimension { get; set; }
    }
}

Мой контроллер

namespace MatrixMethodSLE.Controllers
{
    public class SleController : Controller
    {
        public double[,] _matrixArray;
        public double[] _freeMembers;
        Sle _sle = new Sle();

        [HttpGet]
        public ActionResult Sle()
        {
            return View();
        }

        [HttpPost]
        public ActionResult Sle(Sle sle)
        {
            if (ModelState.IsValid)
            {
                _sle = sle;
                _matrixArray = new double[sle.Dimension, sle.Dimension];
                _freeMembers = new double[sle.Dimension];
                return View("EnterMatrix", sle);
            }

            return View();
        }
    }
}

My View для ввода размера матрицы

@model Sle

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
          integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
    <title>SLE by matrix method</title>
</head>
<body>

<form asp-action="Sle" method="post" class="p-a-1">
    <div asp-validation-summary="All">
        <div class="form-group input-group">
            <input class="form-control" asp-for="Dimension"
                   placeholder="Enter a dimension of matrix you want to work with">
            <button class="btn btn-success" type="submit">Submit value</button>
        </div>
    </div>
</form>
</body>
</html>

My View для чтения матрицы

@model Sle

<!DOCTYPE html>

<html>
<head>
    <title>title</title>
</head>
<body>
@Model.Dimension
<div style="margin:auto">
    @for (int i = 0; i < Model.Dimension; i++)
    {
        for (int j = 0; j < Model.Dimension; j++)
        {
            <input/>
        }
    }
</div>
<button class="btn btn-success" type="submit">Submit value</button>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...