Как добавить и показать данные из списка объектов в MVC? - PullRequest
0 голосов
/ 15 мая 2019

Я работаю над Lexical Analyzer и хочу показать все данные таблицы в MVC.Но чтобы упростить код, я добавлю пример, чтобы показать, чего я хочу достичь.У меня есть класс logic.cs , в который Lexical Analyzer будет получать поступающую строку, и я хочу Добавить элементов в список в соответствии с методом Lexical Analyzer.

Это мой код:

Контроллер

    Repository repo = new Repository();
    logic logica = new logic();

    public ActionResult Index()
    {
        var getrepo = repo.GetData();
        return View(getrepo.ToList());
    }

    [HttpPost]
    public ActionResult Index(string str) {

        logica.Logic_t(str); //I send str parameter to the logic class
        var getrepo = repo.GetData();
        return View(getrepo.ToList());

Модель

Repository.cs

 public class Repository
{
    public List<data_table> data = new List<data_table>() { };


    public List<data_table> GetData() {
        return data;
    }
}

data_table.cs

  public int Line { get; set; }
  public string Token { get; set; }

logic.cs

 Repository repo = new Repository();

    public void Logic_t(string s)
    {
        int Line = 1;

        repo.data.Add(new data_table { Line =Line , Token = " NUMBER" });
    }

Представление

@model IEnumerable<pruebaarray.Models.data_table>

@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
    <textarea rows="10" cols="50" class="textarea" name="str">

    </textarea>
    <input  type="submit" value="send-to-logic" class="btn btn-primary"/>
}

<table class="table-bordered">
    <tr>
        <th>Line</th>
        <th>Token</th>
    </tr>

    @foreach (var item in Model) {
        <tr>
            <th>@item.Line</th>
            <th>@item.Token</th>
        </tr>
    }
</table>

И это мое окончательное представление:

my final view

Мой код имеет нет Ошибки, но когда я нажимаю кнопку submit , ничто не отображается в таблице.Что мне не хватает?или что может быть не так?

PD: Моя логика Lexical Analyzer имеет рекурсивные методы, поэтому она будет постоянно добавлять данные в список.

ОБНОВЛЕНИЕ : Я получил это простоустановив Список на static

1 Ответ

0 голосов
/ 15 мая 2019

В настоящее время ваша форма не знает, на какой контроллер или какое действие нацеливаться.

Html.BeginForm() имеет несколько перегрузок.

Например:

BeginForm(HtmlHelper, String, String, Object, FormMethod, Object)

Записывает открывающий тег в ответ и устанавливаеттег действия для указанного контроллера, действия и значения маршрута.Форма использует указанный метод HTTP и включает атрибуты HTML.

Проверьте перегрузки здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...