1

特定のフィールド(名前、説明、...)を表すフィールドモデルがあります

class FieldModel : EntityModel
{    
    ...
    public bool ToCopy { get; private set; }
    public string Id {get; private set; }
    ...
}

フィールドのコレクションを持つインデックスモデル:

class EntityModel
{
    ...
}

class IndexModel
{
    public IEnumerable<EntityModel> Fields { get; private set; }
}

コピーするフィールドのIDを受け入れる必要があるコピー用コントローラー:

public void CopyFields(string[] fieldsIds)
{
    ...
}

また、チェックボックスでコピーする特定のフィールドを選択する必要があります。だからフィールドのビューで私は追加しました

@Html.CheckBoxFor(x => x.IsSelectedForCopy)

インデックスのビューで

<button onclick="onCopyClick('@Model');" type="button" class="btn showButton">Copy Fields</button>

次に、チェックされたすべてのフィールドを選択し、それらのIDをコントローラーに送信するスクリプトを作成する必要があります。私はJavascript/jQueryの経験がまったくないので、誰かがそれを手伝ってくれるでしょうか?

4

1 に答える 1

3

これで少なくとも始められるはずです;)

jQueryにいくつかのcssセレクターを指定すると、一致するオブジェクトが提供されます...

$("input :checked").each(function() {
    alert($(this).attr("id"));
});

送信方法に応じて、次のようにフォームの非表示フィールドに各IDを追加できます。

$("input :checked").each(function() {
    var tmp = $("#myHiddenField").val();
    tmp += " " + $(this).attr("id"));
    $("#myHiddenField").val(tmp);
});
$.ajax("TheURLToPostTheDataTo", 
    {data: [
        {idsToSend:$("#myHiddenField").val()}
    ], 
    success:  function() { 
         alert("Done"); 
    }
});

次に送信し、サーバーサイドでトリミングしてスペースで分割しますか?

于 2012-12-17T11:27:09.503 に答える