Получить массив моделей частичных представлений - PullRequest
0 голосов
/ 15 мая 2018

У меня динамически загружены частичные виды (зависит от «кнопки добавления»):

$.get('/Home/LoadSpread', {}, function (response) {
    var newHTML = response;
    $(newHTML).hide().appendTo("#Spreads").fadeIn(1000);
    });
$('#loadPartialViewBtn').hide().fadeIn(1000);

Каждый частичный вид отображается в виде главной страницы:

<form method="post" action="GetInitializedBranch">
    <div id="Spreads" align="center">
    </div>
    <input type="submit" value="Send" />
</form>

Каждый частичный вид загружаетсяпо той же модели (которая должна иметь разные значения в сообщении):

public IActionResult LoadSpread()
{
    BranchView branchView = new BranchView
    {
       SelectorViewID = ++partialViewID,
       Spreads = new List<Spread>()
    };
    foreach (var rate in Handlers.DataAccessHandler.GetRatesFromDB())
    {
        branchView.Spreads.Add(new Spread { Curr = rate.Curr });
    }
    return PartialView("_Spread", branchView);
}

Это моя модель частичного просмотра:

public class BranchView
{
    public int BranchID { get; set; }
    public string BranchName { get; set; }
    public int SelectorViewID { get; set; }
    public List<Spread> Spreads { get; set; }
}

Это частичное представление, которое представляет собой таблицу с уникальным вводомelements:

<table class="table table-bordered" style="margin-left: 480px; margin-top: 10px;">
        <tbody>
            <tr>
                <td valign="middle" rowspan="2"> Currency </td>
                <td style="text-align: center;" colspan="4">Cash</td>
                <td style="text-align: center;" colspan="4">Non Cash</td>
            </tr>
            <tr>
                <td>Spread Buy</td>
                <td>Buy Current</td>
                <td>Spread Sell</td>
                <td>Sell Current</td>
                <td>Spread Buy</td>
                <td>Buy Current</td>
                <td>Spread Sell</td>
                <td>Sell Current</td>
            </tr>

            @{ var j = 1;}

            @for (var i = 0; i < Model.Spreads.Count; i++)
        {
            var currencyName = Model.Spreads[i].Curr.ShortName;
            var cashSpreadBuy = "cashSpreadBuy" + currencyName + Model.Spreads[i].ID;
            var cashBuyCurrent = "cashBuyCurrent" + currencyName + Model.Spreads[i].ID;
            var cashSpreadSell = "cashSpreadSell" + currencyName + Model.Spreads[i].ID;
            var cashSellCurrent = "cashSellCurrent" + currencyName + Model.Spreads[i].ID;
            var nonCashSpreadBuy = "nonCashSpreadBuy" + currencyName + Model.Spreads[i].ID;
            var nonCashBuyCurrent = "nonCashBuyCurrent" + currencyName + Model.Spreads[i].ID;
            var nonCashSpreadSell = "nonCashSpreadSell" + currencyName + Model.Spreads[i].ID;
            var nonCashSellCurrent = "nonCashSellCurrent" + currencyName + Model.Spreads[i].ID;

            <tr>
                <td>
                    <div id="@currencyName">
                        @Html.DisplayTextFor(m => m.Spreads[i].Curr.ShortName)
                    </div>
                </td>
                <td>
                    @Html.EditorFor(m => m.Spreads[i].CashSpreadBuy,
                         new { htmlAttributes = new { @id = cashSpreadBuy, @type = "number", @step = "0.01", @class = "form-control" } })
                </td>
                <td>
                    <div id="@cashBuyCurrent">
                        @Html.DisplayTextFor(m => m.Spreads[i].CashBuyCurrent)
                    </div>
                </td>
                <td>
                    @Html.EditorFor(m => m.Spreads[i].CashSpreadSell,
                         new { htmlAttributes = new { @id = cashSpreadSell, @type = "number", @step = "0.01", @class = "form-control" } })
                </td>
                <td>
                    <div id="@cashSellCurrent">
                        @Html.DisplayTextFor(m => m.Spreads[i].CashSellCurrent)
                    </div>
                </td>
                <td>
                    @Html.EditorFor(m => m.Spreads[i].NonCashSpreadBuy,
                         new { htmlAttributes = new { @id = nonCashSpreadBuy, @type = "number", @step = "0.01", @class = "form-control" } })
                </td>
                <td>
                    <div id="@nonCashBuyCurrent">
                        @Html.DisplayTextFor(m => m.Spreads[i].NonCashBuyCurrent)
                    </div>
                </td>
                <td>
                    @Html.EditorFor(m => m.Spreads[i].NonCashSpreadSell,
                         new { htmlAttributes = new { @id = nonCashSpreadSell, @type = "number", @step = "0.01", @class = "form-control" } })
                </td>
                <td>
                    <div id="@nonCashSellCurrent">
                        @Html.DisplayTextFor(m => m.Spreads[i].NonCashSellCurrent)
                    </div>
                </td>
            </tr>
    }
        </tbody>
    </table>

Я пытаюсь получить массив моделей BranchView на post (то есть BranchView [] отделения), но я понятия не имею, как это сделать:

[HttpPost]
    public void GetInitializedBranch (BranchView[] branches)
    {
        //TODO: Collect All branches data 
    }

Что я должен сделать, чтобы получить результаты всех входных данных пользователей с частичным представлением и получить их как массив моделей?

...