表单帖子中缺少mvc4动态生成的字段

时间:2013-02-13 04:54:37

标签: asp.net-mvc-4

我有一个奇怪的情况,我在表单上动态生成字段 - 所有下拉列表。选择对应于我想要一起形成位掩码的二进制值。我用这种方式生成下拉菜单:

<table class="center">
    @foreach (var field in Model.Fields)
    {
        <tr>
            <td>@field.DisplayText:</td>
            <td>
                @Html.DropDownList(field.FieldName, new SelectList(field.Options, "FlagValue", "Text", field.SelectedValue), "(doesn't matter)")                
            </td>
        </tr>
    }
</table>

这似乎有效 - 只要在视图中呈现正确的HTML即可。但我的控制器没有收到字段中的选择。我试着循环遍历动态字段。

在下面的代码中,PatientSelectorEditor是我的ViewModel。

    private void GetFlagInfo(PatientSelectorEditor pse, out string description, out long flags)
    {
        description = null;
        flags = 0;

        // get list of all possible fields that could be in the view.
        pse.Fields = InitPatientSelectorFields(0);
        foreach (PriceFlagField field in pse.Fields)
        {                
            foreach (var option in field.Options)
            {
                // was something selected here?
                if (Request[field.FieldName].Equals(option.FlagValue))
                {
                    description += ", " + option.Text;
                    flags += option.FlagValue;
                }
            }                
        }            
    }

走的路

 Request[field.Name]

在我的视图中找不到动态生成的字段。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我弄清楚我在这里做错了什么。这一行......

if (Request[field.FieldName].Equals(option.FlagValue))

需要像这样的显式字符串比较

if (Request[field.FieldName].Equals(option.FlagValue.ToString()))