Asp.net mvc Telerik网格数据绑定调用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-------------------------------

我正在使用ASP.NET MVC,我有一个在HttpPost操作中检索表单数据的视图。调用HttpPost操作时,它工作正常。我使用表单数据查询数据库,数据库的结果绑定到TELERIK网格控件。它可以很好地显示数据,但分页不起作用

问题是,当我尝试切换到另一个页面时,它会调用HTTPGET操作方法而不是HttpPost操作方法,因此不会从数据库中检索数据

感谢您的帮助

以下是视图和控制器的代码:

//-------------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组件。

能否从视图中发布网格代码以及控制器中的操作方法?所以我会尽力帮你的。谢谢。我已经插入了代码,希望它能帮助您获得一些见解。如果有什么不清楚的地方,请问我。