5

ActionLinkを使用して、選択したチェックボックスのリストを機能させる方法を考え出そうとしています。JavaScript を使用してクライアント側で何かを行う必要があると思いますが、関連するコードが見つかりません。

次のコードは、送信ボタンを使用して完全に機能し、選択した ID を ID の配列としてポストバックしますが、これを他のボタンのあるページに配置する必要があります。

// the view 
@foreach (var station in Stations)
{
   <input type="checkbox" name="selected" value="@station.StationId" /> 
}    
<input type="submit" value="Save" />

//Controller stub
public ActionResult Action(string [] selected) 

私はこれに何時間も悩まされてきたので、間違った見方をしているのかもしれません。

PS。ここで何時間も読んで学んだ後の私の最初の投稿。

4

2 に答える 2

4

チェックボックスリストの値を投稿するボタンまたはリンク

<a href="#" id="someButton">Post</a>
//or buttons, helpers and any elements to trigger ajax post...

チェックボックスリスト:

<div id="MyDiv">
    @foreach (var station in Stations)
    {
        <input type="checkbox" name="selected" value="@station.StationId" /> 
    }  
</div>

スクリプト:

$(document).ready(function() {
    $('#someButton').click(function() {
        var list = [];
        $('#MyDiv input:checked').each(function() {
            list.push(this.name);
        });
        // now names contains all of the names of checked checkboxes
        // do something with it for excamle post with ajax
        $.ajax({
            url: '@Url.Action("Action","Contoller")',
            type: 'POST',
            data: { Parameters: list},
            success: function (result) {
                alert("success")!
            },
            error: function (result) {
                alert("error!");
            }
        });   //end ajax
    });
});

コントローラ:

public ActionResult Action(string [] Parameters) 

私がそれを正しければ:)

于 2012-12-04T08:12:29.490 に答える
3

AJAX投稿を探していないようです。これに取り組む最も簡単な方法は、フォームにラップして送信関数を呼び出すことです。コードは次のようになります。

@using(Html.BeginForm("uraction", "urcontroller", FormMethod.Post, new { id = "formId" })) { 
    foreach(var station in Stations) {
        <input type="checkbox" name="selected" value="@station.StationId" /> 
    }
}
<a href="#" id="postBtn">Post</a>
<script>
    $(document).ready(function() {
        $('#postBtn').click(function() {
            $('#formId').submit();
        }
    }
</script>
于 2012-12-04T09:58:15.163 に答える