C# HTTPRequest连接以前的值

C# HTTPRequest连接以前的值,c#,html,asp.net-mvc,http-post,forms,C#,Html,Asp.net Mvc,Http Post,Forms,我有一个局部视图,它将表单传递给MVC控制器的复选框列表。选中的值是特定的。问题是,每次我调用此视图时,新值都会连接到旧值。例如,第一次值为true,第二次值为true,true,第三次值为true,true,true等等。我怎样才能避免这种情况 以下是局部视图的代码: @using (Html.BeginForm("SaveGridSettings", "ExtendedGrid", FormMethod.Post)) { <div class="alert alert-warn

我有一个局部视图,它将表单传递给MVC控制器的复选框列表。选中的值是特定的。问题是,每次我调用此视图时,新值都会连接到旧值。例如,第一次值为true,第二次值为true,true,第三次值为true,true,true等等。我怎样才能避免这种情况

以下是局部视图的代码:

@using (Html.BeginForm("SaveGridSettings", "ExtendedGrid", FormMethod.Post))
{
    <div class="alert alert-warning">

        @Html.Hidden("objectType", (string)ViewBag.GridType)
        @Html.Hidden("userID", (string)ViewBag.UserID)
        <table width="100%" border="1">
            @{
                using (var context = new EfDbContext())
                {
                    var cellsInRow = 10;
                    var i = 0;
                    while (i < ViewBag.PropertiesList.Length)
                    {
                        <tr>
                            @{ int fin = ViewBag.PropertiesList.Length - i < cellsInRow ? ViewBag.PropertiesList.Length - i : cellsInRow; }
                            @for (var j = 0; j < fin; i++)
                            {
                                string propertyName = ViewBag.PropertiesList[i];//.Name;

                                var columnInfo = context.ExtendedGridColumnsViewSettings.AsEnumerable().FirstOrDefault(it => it.TypeName.Equals(ViewBag.GridType) &&
                                                                                                                             it.FieldName.Equals(propertyName) &&
                                                                                                                             it.UserID.Equals(ViewBag.UserID));
                                var isChecked = columnInfo == null || columnInfo.IsChecked;

                                //if (ViewBag.PropertiesList[i].PropertyType.GetInterface("ICollection") == null)
                                //{
                                    <td align ="center">
                                        @Html.Label(propertyName)
                                        @Html.CheckBox(propertyName, isChecked)
                                        @{
                                            j++;
                                        }
                                    </td>
                                //}

                            }
                        </tr>
                    }
                }
            }
        </table>
        <br><br>
        <center>
                <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
                <button type="submit" id="approve-btn" class="btn btn-danger">Save</button>
        </center>
    </div>

}

我认为这是引导模式弹出。当你关闭它时,你不会破坏它。因此,每次打开新模式并发布数据时,它也会发布以前模式的现有复选框的数据。这可能是个问题。这只是对你身边可能发生的事情的猜测。@AnkushJain,是的,这是引导模式弹出窗口。我应该如何正确地销毁它?$'myModal'。在'hidden.bs.modal'上,函数{//在弹出窗口在此事件中被隐藏时清除弹出窗口的内容}
    [HttpPost]
    public ActionResult SaveGridSettings()
    {
        string settings = "";

        var objectType = Request["objectType"];
        var userID = Request["userID"];

        var listOfProperties = Request.Form.AllKeys.Where(it => !it.Equals("objectType") && !it.Equals("userID"));

        using (var context = new EfDbContext())
        {
            foreach (var property in listOfProperties)
            {
                if (String.IsNullOrEmpty(Request[property])) continue;

                var isChecked =
                    Boolean.Parse(Request[property]); //HERE THE VALUE COMES CONCATENATED

                var existingSetting =
                    context.ExtendedGridColumnsViewSettings.AsEnumerable()
                        .FirstOrDefault(
                            it =>
                                it.TypeName.Equals(objectType) && it.FieldName.Equals(property) &&
                                it.UserID.Equals(userID));
                if (existingSetting != null)
                {
                    existingSetting.IsChecked = isChecked;
                    context.ExtendedGridColumnsViewSettings.Attach(existingSetting);
                    ((IObjectContextAdapter)context).ObjectContext.ObjectStateManager.ChangeObjectState(existingSetting, EntityState.Modified);
                }
                else
                {
                    existingSetting = new ExtendedGridColumnsViewSetting
                    {
                        FieldName = property,
                        TypeName = objectType,
                        UserID = userID,
                        IsChecked = isChecked
                    };
                    context.ExtendedGridColumnsViewSettings.Add(existingSetting);
                }

            }
            context.SaveChanges();
        }

        var url = Request.UrlReferrer.AbsolutePath;
        return Redirect(url);

    }