0

我的应用程序需要对带有复选框的表进行 HTTP 发布。在控制器端,我需要遍历表并对检查的每一行执行某些操作。

我需要做的事情是:

识别是否选中了一行

这是我的代码:

看法 :

@model IEnumerable<LinqToTwitter.User>
@{
    ViewBag.Title = "Page d'accueil";
}
<h2>Twitter</h2>
<table>
    <tr>
    <td>
        <input id="Checkbox1" type="checkbox" />
    </td>
    </tr>
@foreach (var tweet in Model)
{               
    <tr>
        <td>
            <input id="rowIDs" type="checkbox" />
        </td>
        <td>
            <img alt="" src="@tweet.ProfileImageUrl" />
        </td>
        <td>
            <strong>@tweet.Name</strong>
            <br />
            Friends: <strong>@tweet.FriendsCount</strong>
        </td>
    </tr>
}
</table>

控制器 :

{.....
    string nextCursor = "-1";

    List<LinqToTwitter.User> result = new List<LinqToTwitter.User>();
    while (!string.IsNullOrEmpty(nextCursor) && nextCursor != "0")
    {
        var followers =
        (from tweet in twitterCtx.User
            where tweet.Type == UserType.Followers &&
            tweet.ID == auth.UserId &&
            tweet.Cursor == nextCursor
            select tweet).ToList();

        result.AddRange(followers);
        nextCursor = followers[0].CursorMovement.Next;
    }
    return View(result);
}

请帮忙。谢谢。

4

1 回答 1

0

如果要将输入标签发布到服务器,它们必须在表单标签中。那么你的 html 必须是这样的:

@model IEnumerable<LinqToTwitter.User>
@{
         ViewBag.Title = "Page d'accueil";
}
<h2>
    Twitter</h2>
@using (Html.BeginForm())
{
    <table>
        <tr>
            <td>
                <input id="Checkbox1" type="checkbox" />
            </td>
        </tr>
        @foreach (var tweet in Model)
        {               
            <tr>
                 <td>
                    <input id="@("chk" + @tweet.ID.ToString())" type="checkbox" name="@("chk" + @tweet.ID.ToString())"  />
                </td>
                <td>
                    <img alt="" src="@tweet.ProfileImageUrl" />
                </td>
                <td>
                    <strong>@tweet.Name</strong>
                    <br />
                    Friends: <strong>@tweet.FriendsCount</strong>
                </td>
            </tr>
        }
    </table>
}

请注意如何通过 HtmlHelper 定义表单标签并定义复选框以具有唯一 ID。

和你的控制器代码是这样的:

Dictionary<int, bool> isChecked = new Dictionary<int, bool>();

foreach (LinqToTwitter.User item in twitterCtx.User)
{
    if (Request.Form["chk" + item.ID.ToString()] != null && Request.Form["chk" + item.ID.ToString()] == "on")
        isChecked.Add(item.ID, true);
    else
        isChecked.Add(item.ID, false);
}

现在 isChecked 字典包含每个项目的 ID 以及是否检查。

于 2012-05-14T06:12:46.037 回答