我有MVC2視圖,其中有一個網格和圖像按鈕。點擊圖像按鈕時,它會將網格的currentPage,filter和orderBy域的數據傳遞給另一個控制器。代碼是,爲什麼ViewData不起作用
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MaintenanceEditableViewModel>" %>
"Image button"
<a href="<%: Url.Action("ExportToExcel", "ExportExcelButton", new { resourceId = ViewData["resourceId"], pagenum = ViewData["page"], orderBy = ViewData["orderBy"], filter = ViewData["filter"] }) %>">
<img src='<%: Url.Content("~/Content/Images/ExportExcelButton.gif") %>' /></a>
"Grid"
<%= Html.Telerik().Grid<MaintenanceAthletesResultsViewModel>()
.Name("Grid")
.TableHtmlAttributes(new { style = "font-size:8pt;" })
.HtmlAttributes(new { style = "height:335px" })
.DataKeys(k => k.Add(k2 => k2.ResultID))
.DataBinding(dataBinding => dataBinding.Ajax()
.Select("AthletesResultsAjax", "Maintenance")
...
"Action to initialize the grid in Maintenance controller"
public ActionResult AthletesResults(string id, bool editable)
{
ViewData["resourceId"] = id;
this._resourceBL.PopulateMaintenanceResourcesViewData(id, this.SelectedSport());
MaintenanceEditableViewModel model = new MaintenanceEditableViewModel { Editable = editable };
return View(model);
}
[GridAction]
public ActionResult AthletesResultsAjax(string id, int page, string orderBy, string filter)
{
List<MaintenanceAthletesResultsViewModel> model = null;
if (!string.IsNullOrEmpty(id))
{
ViewData["page"] = page;
ViewData["orderBy"] = orderBy;
ViewData["filter"] = filter;
model = this._resourceBL.GetMaintenanceAthletesResultsViewModel(int.Parse(id));
}
return View(new GridModel(model));
}
public ActionResult ExportToExcel(string resourceId, string pagenum, string orderBy, string filter)
奇怪的是,只有ViewData [「resourceId」](在視圖的初始化中設置)能夠被傳遞。 ViewData [「page」],ViewData [「orderBy」],ViewData [「filter」](在網格ajax動作中設置)這3個參數無法傳遞。在ExportToExcel中所有3個都是空的,所以我認爲它們沒有正確存儲在ViewData中(我不確定如何在按下圖像按鈕時檢查ViewData)。我很困惑,需要幫助。
感謝
AthletesResults當網格頁碼/ orderBy/filter已更改時,會調用Ajax。我檢查了調試和值是正確的,例如當頁面編號變爲3時page = 3。奇怪的是,當它們通過ViewData在視圖中的Url.Action中訪問時,值將丟失。 – user585440 2012-07-19 19:58:18
嗯,對不起,我想我確實相當不錯。 – 2012-07-19 20:01:55