2012-05-13 52 views
0

我的应用程序需要做一个带有复选框的表格的HTTP帖子。在控制器端,我需要遍历表并对每个检查过的行执行某些操作。ASP.Net中的CheckboxList MVC3

,我需要做的事情是:

标识行是否被选中

这里是我的代码:

观点:

@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

为了我们的帮助,您需要在迄今为止已经尝试的内容上发布一些代码。堆栈溢出用于帮助您解决问题,而不是为您解决问题。 – jacqijvv

+0

谢谢@jacqijvv这里是我的代码, – gouzema

回答

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和是否检查与否。