Checkboxfor不绑定模型

时间:2012-08-30 18:06:10

标签: asp.net-mvc-3

所以我是MVC和ASP.Net的新手。我整个下午一直在阅读这里的帖子,我无法让这个工作。我尝试了thisthisthis,我只是不知道自己做错了什么。

条件类

public class conditions
{
    public string condName;
    public bool condValue;

    public conditions(string s)
    {
        condName = s;

    }
}

风险历史课

public class riskHistory
{
    public List<conditions> results;
    public riskHistory()
    {
        results = new List<conditions>();
        results.Add(new conditions("History of Marfans Syndrome"));
        results.Add(new conditions("Family history of aortic disease"));
        results.Add(new conditions("Recent aortic manipulation"));
        results.Add(new conditions("Known thorasic aorta aneurysm"));

    }
}

现在有一个riskPain和riskFeatures类以相同的方式定义。我需要将其拆分为3,因为每个都必须以不同的方式处理。我在视图中唯一的每个类上显示的内容。

视图模型定义为

public class adViewModel
    {
        public riskFeatures rF;


 public riskPain rP;
    public riskHistory rH;

    public adViewModel()
    {
        rF = new riskFeatures();
        rH = new riskHistory();
        rP = new riskPain();
    }
}

然后我在视图中有这个代码。它是adViewModel的强类型。

Does the patient have any of the following history?
@for (int x =0; x<Model.rH.results.Count; x++)
{
    string n = Model.rH.results[x].condName.ToString();

    <b>@Html.Label(n)</b> @Html.CheckBoxFor(m => m.rH.results[x].condValue)
}



Does the patient have any of the following features to their pain? 

//继续其他课程

视图显示正确,但是当我提交表单时它没有绑定(所有condvalue都是false)。如果您要建议编辑器模板,那么我有第二个问题。 for循环上方视图代码中的问题“患者是否有以下病史?”对于每组复选框,该问题必须不同。这会怎么样?

非常感谢! 〜乍得

1 个答案:

答案 0 :(得分:0)

因此,在Check循环中使用像CheckBoxFor这样的Html助手会给我带来麻烦,因为我无法控制生成的输入标签的ID。检查渲染的最终标记,并查看它所生成的控件的ID。写出控件的html并不比调用helper方法那么长。