我的应用程序需要使用复选框执行带有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);
}
请帮忙。感谢。
答案 0 :(得分: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 Dictionary包含每个项目的ID以及是否检查。