有人可以帮我解决这个问题吗?在页面加载之前的视图底部,我创建了一组复选框,如下所示:
foreach (var course in courses.Select((x, i) => new { Data = x, Index = i }))
{
int currentIndex = course.Index;
String selectedday = "";
String selectedteacher = "";
if (cnt++ % 4 == 0)
{
@: </tr> <tr>
}
@: <td >
<br /><br /><br />
<input type="checkbox" id="checkbox"
name="selectedCourses"
value="@course.Data.CourseID"
@(Html.Raw(course.Data.Assigned ? "checked=\"checked\"" : ""))
/>
我使用相同的循环将分配的状态添加到这样的列表中:
bool theNewString=course.Data.Assigned ;
String a=theNewString.ToString();
assignedCourses.Add(a);
我在页面顶部定义了一个列表变量,以便可以像这样在表单范围内访问它:
@{List<String> assignedCourses =new List<String>(); }
现在我想将该变量发送到控制器,这就是事情变得混乱的地方。如果我发送这样的字符串,它可以正常工作:
剃刀标记
String postedData = "literalString";
@using (Html.BeginForm("Action", "Controller", new { assigned = @ postedData }))
行动
[HttpPost]
public ActionResult Edit(int id,List<String> assigned){}
现在如果我试试这个:
@{List<String> assignedCourses =new List<String>(); }
@using (Html.BeginForm("Action", "Controller", new { assigned = @assignedCourses }))
并且没有任何东西通过控制器。这就像列表在发布之前被清空。如何将我的列表发送到控制器?