私は本当に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"))
どうすればこれを機能させることができますか?ヘルプをいただければ幸いです