Asp.net mvc Telerik网格数据绑定调用HttpPost方法
我正在使用ASP.NET MVC,我有一个在HttpPost操作中检索表单数据的视图。调用HttpPost操作时,它工作正常。我使用表单数据查询数据库,数据库的结果绑定到TELERIK网格控件。它可以很好地显示数据,但分页不起作用 问题是,当我尝试切换到另一个页面时,它会调用HTTPGET操作方法而不是HttpPost操作方法,因此不会从数据库中检索数据 感谢您的帮助 以下是视图和控制器的代码:Asp.net mvc Telerik网格数据绑定调用HttpPost方法,asp.net-mvc,telerik,telerik-grid,Asp.net Mvc,Telerik,Telerik Grid,我正在使用ASP.NET MVC,我有一个在HttpPost操作中检索表单数据的视图。调用HttpPost操作时,它工作正常。我使用表单数据查询数据库,数据库的结果绑定到TELERIK网格控件。它可以很好地显示数据,但分页不起作用 问题是,当我尝试切换到另一个页面时,它会调用HTTPGET操作方法而不是HttpPost操作方法,因此不会从数据库中检索数据 感谢您的帮助 以下是视图和控制器的代码: //-------------View-------------------------------
//-------------View------------------------------------
@(Html.Telerik().Grid(Model)
.Name("Grid")
.Columns(columns =>
{
columns.Bound(o => o.DealerName);
columns.Bound(o => o.DealerNumber);
columns.Bound(o => o.ServiceDealerNumber);
columns.Bound(o => o.CMDealerNumber);
columns.Bound(o => o.PurchaseDealerNumber);
columns.Bound(o => o.Address);
columns.Bound(o => o.City);
columns.Bound(o => o.State);
columns.Bound(o => o.Zip);
})
.DataBinding(dataBinding =>
{
dataBinding.Server().Select("DealerProfile", "DealerManagement", new { testVal = "test" }).Enabled(true);
dataBinding.Ajax().Select("DealerProfile", "DealerManagement", new { testVal = "test" } ).Enabled(true);
})
.Scrollable(scrolling => scrolling.Enabled(true))
.Sortable(sorting => sorting.Enabled(true))
.Pageable(paging =>
paging.PageSize(20)
.Style(GridPagerStyles.NextPreviousAndNumeric)
.Position(GridPagerPosition.Bottom)
)
.Filterable(filtering => filtering.Enabled(true))
.Groupable(grouping => grouping.Enabled(true))
.Footer(true)
)
//---------------Controller Actions---------------------------------------
//
// GET: /DealerManagement/DealerProfile/
public ActionResult DealerProfile()
{
return View();
}
//
// POST: /DealerManagement/DealerProfile/
[HttpPost]
public ActionResult DealerProfile(FormCollection formValues)
{
string dealerNumber = Request.Form["DealerNumber"];
string dealerName = Request.Form["DealerName"];
DealerProfilesViewModel dealerProfilesViewModel = new DealerProfilesViewModel();
dealerProfilesViewModel.DealerProfiles = new List<DealerProfileViewModel>();
if (!dealerNumber.Trim().Equals(string.Empty))
{
DealerInfoCollection dealers = _iDealerProfileService.GetDealerInfoFromDealerNumber(dealerNumber);
foreach (var item in dealers)
{
DealerProfileViewModel dealerProfileViewModel = new DealerProfileViewModel();
dealerProfileViewModel.DealerName = item.Dealer_Name;
dealerProfileViewModel.DealerNumber = item.Dealer_No;
dealerProfileViewModel.ServiceDealerNumber = item.Service_Dealer_No;
dealerProfileViewModel.CMDealerNumber = item.CM_Dealer_No;
dealerProfileViewModel.PurchaseDealerNumber = item.PUR_Dealer_No;
dealerProfileViewModel.Address = item.Address;
dealerProfileViewModel.City = item.City;
dealerProfileViewModel.State = item.State;
dealerProfileViewModel.Zip = item.Zip;
dealerProfilesViewModel.DealerProfiles.Add(dealerProfileViewModel);
}
}
else if (!dealerName.Trim().Equals(string.Empty))
{
DealerInfoCollection dealers = _iDealerProfileService.GetDealerInfoFromDealerName(dealerName);
foreach (var item in dealers)
{
DealerProfileViewModel dealerProfileViewModel = new DealerProfileViewModel();
dealerProfileViewModel.DealerName = item.Dealer_Name;
dealerProfileViewModel.DealerNumber = item.Dealer_No;
dealerProfileViewModel.ServiceDealerNumber = item.Service_Dealer_No;
dealerProfileViewModel.CMDealerNumber = item.CM_Dealer_No;
dealerProfileViewModel.PurchaseDealerNumber = item.PUR_Dealer_No;
dealerProfileViewModel.Address = item.Address;
dealerProfileViewModel.City = item.City;
dealerProfileViewModel.State = item.State;
dealerProfileViewModel.Zip = item.Zip;
dealerProfilesViewModel.DealerProfiles.Add(dealerProfileViewModel);
}
}
if (!String.IsNullOrEmpty(dealerName) && !String.IsNullOrEmpty(dealerNumber))
{
dealerProfilesViewModel = null;
}
return View(dealerProfilesViewModel.DealerProfiles);
}
/--------------查看------------------------------------
@(Html.Telerik().Grid(模型)
.名称(“网格”)
.列(列=>
{
columns.Bound(o=>o.DealerName);
columns.Bound(o=>o.DealerNumber);
columns.Bound(o=>o.ServiceDealerNumber);
columns.Bound(o=>o.CMDealerNumber);
columns.Bound(o=>o.PurchaseDealerNumber);
columns.Bound(o=>o.Address);
columns.Bound(o=>o.City);
columns.Bound(o=>o.State);
columns.Bound(o=>o.Zip);
})
.DataBinding(数据绑定=>
{
Server().Select(“DealerProfile”,“DealerManagement”,new{testVal=“test”}).Enabled(true);
选择(“DealerProfile”,“DealerManagement”,new{testVal=“test”}).Enabled(true);
})
.scrolling可滚动(滚动=>scrolling.Enabled(true))
.Sortable(排序=>sorting.Enabled(true))
.Pageable(分页=>
页面大小(20)
.Style(GridPagerStyles.nextPrevious和Numeric)
.位置(GridPagerPosition.底部)
)
.Filterable(筛选=>filtering.Enabled(true))
.Groupable(grouping=>grouping.Enabled(true))
.Footer(true)
)
//---------------控制器动作---------------------------------------
//
//获取:/DealerManagement/DealerProfile/
公共行动结果DealerProfile()
{
返回视图();
}
//
//POST:/DealerManagement/DealerProfile/
[HttpPost]
public ActionResult DealerProfile(FormCollection formValues)
{
字符串dealerNumber=Request.Form[“dealerNumber”];
字符串dealerName=Request.Form[“dealerName”];
DealerProfilesViewModel DealerProfilesViewModel=新的DealerProfilesViewModel();
dealerProfilesViewModel.DealerProfiles=新列表();
如果(!dealerNumber.Trim().Equals(string.Empty))
{
DealerInfoCollection dealers=\u iDealerProfileService.GetDealerInfoFromDealerNumber(dealerNumber);
foreach(经销商中的var项目)
{
DealerProfileViewModel DealerProfileViewModel=新的DealerProfileViewModel();
dealerProfileViewModel.DealerName=item.Dealer\u名称;
dealerProfileViewModel.DealerNumber=项目。经销商编号;
dealerProfileViewModel.ServiceDealerNumber=项目。服务\经销商\编号;
dealerProfileViewModel.CMDealerNumber=item.CM\u经销商编号;
dealerProfileViewModel.PurchaseDealerNumber=item.PUR\u经销商编号;
dealerProfileViewModel.Address=项目.Address;
dealerProfileViewModel.City=item.City;
dealerProfileViewModel.State=item.State;
dealerProfileViewModel.Zip=item.Zip;
dealerProfilesViewModel.DealerProfiles.Add(dealerProfileViewModel);
}
}
如果(!dealName.Trim().Equals(string.Empty))为else,则为
{
DealerInfoCollection dealers=\u iDealerProfileService.GetDealerInfoFromDealerName(dealerName);
foreach(经销商中的var项目)
{
DealerProfileViewModel DealerProfileViewModel=新的DealerProfileViewModel();
dealerProfileViewModel.DealerName=item.Dealer\u名称;
dealerProfileViewModel.DealerNumber=项目。经销商编号;
dealerProfileViewModel.ServiceDealerNumber=项目。服务\经销商\编号;
dealerProfileViewModel.CMDealerNumber=item.CM\u经销商编号;
dealerProfileViewModel.PurchaseDealerNumber=item.PUR\u经销商编号;
dealerProfileViewModel.Address=项目.Address;
dealerProfileViewModel.City=item.City;
dealerProfileViewModel.State=item.State;
dealerProfileViewModel.Zip=item.Zip;
dealerProfilesViewModel.DealerProfiles.Add(dealerProfileViewModel);
}
}
如果(!String.IsNullOrEmpty(dealerName)和&!String.IsNullOrEmpty(dealerNumber))
{
dealerProfilesViewModel=null;
}
返回视图(dealerProfilesViewModel.DealerProfiles);
}
首先,控制器方法需要GridAction属性。其次,它必须使用GridModel类型作为模型。这是ajax绑定所必需的。您可以检查以及显示所需步骤的。很可能您应该为ajax绑定定义一个单独的操作方法
最后,网格的JavaScript似乎没有起作用——它发出HTTP GET请求的事实表明了这一点。检查网格后是否声明了ScriptRegistrar组件。能否从视图中发布网格代码以及控制器中的操作方法?所以我会尽力帮你的。谢谢。我已经插入了代码,希望它能帮助您获得一些见解。如果有什么不清楚的地方,请问我。