获取后如何保持CheckBox值?

时间:2014-04-16 20:06:56

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

在我的ASP.NET MVC 5网站中,我有这种情况:

我有一个GridView,我可以只获取默认行或所有行(包括已删除的行)。我试图使用名为' cbxGetAll'的视图功能区中的CheckBox来控制它。

所以,这是我的剧本:

<script>
function OnCommandExecuted(s, e) {
     if (e.item.name == "cbxGetAll") {
        if (e.parameter) {
            window.location.href = '@Url.Action("Index",new {getAll = true})';
            return;

        } else {
            window.location.href = '@Url.Action("Index",new {getAll = false})';
            return;
        }
    }
 </script>

我的行动:

  public ActionResult Index(bool? getAll)
  {
       if (getAll != null && (bool) getAll)
       {
          //Return Without Filter
       }
       else
       {
          //Return With Filter
       }
  }

我更改了URL中的getAll参数,但效果很好。 但问题是,当ActionResult完成时,它会重新加载页面(当然)然后我丢失了复选框状态。 我该如何处理?

1 个答案:

答案 0 :(得分:0)

关于视图模型的全部内容。您应该返回一个具有复选框值的视图模型,并让您的视图使用该值。如果您还要返回数据,只需将数据(无论是什么)放在视图模型中。

示例:

public class MyViewModel 
{
    public bool GetAll { get; set; }

    public SomeDataModel[] MyData { get; set; }
}

public ActionResult Index(bool? getAll)
{
   SomeDataModel[] data;

   if (getAll != null && (bool) getAll)
   {
      var data = GetSomeData(true);
   }
   else
   {
      var data = GetSomeData(false);
   }

   return View(new MyViewModel() { MyData = data, GetAll = getAll == true });
}