0

jquery を使用して、製品のリストからテーブルを作成しました。テーブルに新しい行を追加します。この新しい行から新しい製品を作成し、リストに追加したいのです。

これは製品モデルです:

    public class Product
    {
    public int ProductId { get; set; }
    public string ProductName { get; set; }
    public decimal Price { get; set; }
    public int ProductState { get; set; }
    }

製品のリストを表示するインデックス モデル ビュー:

    public class BillViewModel
    {
    public SelectList ClientList { get; set; }
    public int SelectedClient { get; set; }
    public SelectList ProductList { get; set; }
    public int ProductSelected { get; set; }
    public List<Product> ListProducts { get; set; }
    public List<Client> ListClients { get; set; }
    }

これはビューです。非表示のフィールドは、投稿をクリックしたときに製品のリストを送信するためのものです。

<table id="tabla">


    @for (int i = 0; i < Model.ListProducts.Count(); i++)
    {
        <tr>
            <td>
                @Html.DisplayFor(model => model.ListProducts[i].ProductName)
                @Html.HiddenFor(model => model.ListProducts[i].ProductName)
            </td>

        </tr>
    }       

</table>

ドロップダウン リストから新製品を選択し、その名前をテーブルに追加します。

<script type="text/javascript">
$('#submit').click(function() {
    $('#tabla').append('<tr><td>' + $('#select option:selected').text() + '</tr>');
});

問題は、この行 (製品名) を製品リストに追加するにはどうすればよいかということです。

私は ajax を使用するか、追加をクリックしてビューを再度レンダリングした後にアクションに移動することを考えていました。ajaxを使用せずにjquery経由で追加したり、アクションリンクに移動したりする方法はありますか?

4

2 に答える 2

0

唯一の方法はPOST、フォームにActionResult新しいアイテムを追加することです。

于 2013-07-25T14:32:40.163 に答える
0

私は解決策を見つけました:

アイデアは、行内の非表示フィールドをテーブルに追加することです。

    var rowCount = $('table tr').length;
    $('#tabla').append('<tr><td> <input type="hidden" value=' + $("#select    option:selected").text() + ' name="ListProducts['+ rowCount +'].ProductName"> </td></tr>');

これを行うと、モデルは非表示フィールドの値を取得します。非表示フィールドには、mvc がオブジェクトのリストを送信するように、インデックス付きのリストがあります。

        @for (int i = 0; i < Model.ListProducts.Count(); i++)
        {
        <tr>
            <td>
                @Html.DisplayFor(model => model.ListProducts[i].ProductName)

                @Html.HiddenFor(model => model.ListProducts[i].ProductName)
            </td>
        </tr>
        }

非表示で、オブジェクトをモデルのリストに追加します。

于 2013-07-26T13:15:47.880 に答える