我真的需要在我的 MVC 应用程序中维护这个名为“filterParams”的字符串。用户输入一些搜索参数后,他单击提交,网格将重新绑定该参数。这很好用。我还将 filterParams 数据保存在 Javascript 变量中,因此当用户页面时,引发 OnDataBinding 事件时,过滤器也通过该 ajax 调用传递。这一切都很好,但是有一个大问题,因为当用户更新问题时,所有结果都会消失,因为它返回到视图并且那里没有任何数据。我使用 ViewData 的方式不起作用,我可以使用你的帮助,因为如果我可以将它存储在 ViewData 中并访问它,它将解决我的问题。如何正确实现 ViewData 以在我的控制器中存储和检索字符串?
以下是一些代码片段。
[GridAction]
public ActionResult GetAllQuestion(string filterParams)
{
var _filterParams = new List<string>();
_filterParams.Add(filterParams);
ViewData["filterParams"] = _filterParams;
return View(new GridModel(QuestionManager.Instance.GetQuestion(filterParams)));
}
[GridAction]
public ActionResult EditQuestion(int id, QuestionDTO pQuestion)
{
// var _question = QuestionManager.Instance.GetQuestion(id,false).FirstOrDefault();
// TryUpdateModel(_question);
var _filterParams = (List<string>)ViewData["filterParams"];
var filterParams = _filterParams[0];
QuestionManager.Instance.UpdateQuestion(pQuestion);
// return View(new GridModel(QuestionManager.Instance.GetQuestion(id, false)));
return View(new GridModel(QuestionManager.Instance.GetQuestion(filterParams)));
}
在我的 aspx 页面中
Html.Telerik().Grid<QuestionDTO>()
.DataBinding(dataBinding => dataBinding.Ajax().Select("GetAllQuestion", "Question", new { filterParams = string.Empty }).Update("EditQuestion", "Question").Insert("CreateQuestion", "Question"))
请问我怎样才能让它工作?帮助表示赞赏