如何在asp.net mvc中将所选项目从一个页面传递到另一个页面

时间:2015-10-03 23:58:36

标签: c# asp.net asp.net-mvc

在我的索引页面中,我有多个可以选择的复选框:

@foreach (var item in Model) {
    <tr>
        <td class ="text-nowrap">
            <input class="chkSelect" type="checkbox" name="Selected" value="@item.Id">
        </td> 
        <td>                
            @Html.ValueFor(modelItem => item.trandate, "{0:dd/MM/yyyy}")
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id=item.Id })            
        </td>
    </tr>
}

我需要获取所选项目并将其传递给另一个表单/页面/操作,我想使用所选项目的ID来执行其他操作。 如何将所选项目传递给另一页面的控制器操作?

所以,现在我创建了public ActionResult SendSMS(string[] msisdn) { return View(); }

&#13;
&#13;
@using (Html.BeginForm("SendSMS", "Subscribers", FormMethod.Post))
{
    <div class="form-group">
        <a href="@Url.Action("SendSMS", "Subscriber", new { msisdn = Request["Selected"] })">   <span class="btn btn-primary"> <i class="fa fa-envelope"></i> Send SMS</span>  </a>
    </div>

}
&#13;
&#13;
&#13;

那么,请求[&#34;选择&#34;]会保留所有选定的项目吗?它在调试时显示为空。

2 个答案:

答案 0 :(得分:0)

你可以POST它到控制器并使用这些值进行重定向。然后,值将在查询字符串中执行到另一个操作。像:

return RedirectToAction("Index", "Home", new { value1 = value1, value2 = value 2});

答案 1 :(得分:0)

我只需使用提交按钮即可完成此操作。和

在控制器动作SendSMS中我有:

if (Request["Selected"] != null)
            {
                model.msisdn = string.Empty;
                model.MessageId = string.Empty;
                foreach (var selection in Request["Selected"].Split(','))
                {


                }
            }