Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC中的页面列表:使用Ajax加载,无法保留搜索词_C#_Asp.net_Asp.net Mvc - Fatal编程技术网

C# MVC中的页面列表:使用Ajax加载,无法保留搜索词

C# MVC中的页面列表:使用Ajax加载,无法保留搜索词,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我在谷歌上搜索过,虽然有几个人问过这个问题,但我发现没有人给出有效的解决方案 我使用PagedList包在MVC应用程序中创建页面。我正在通过Ajax加载页面。问题是我无法保留我的搜索词(更改页面就像什么都没有被过滤过一样) 以下是我的方法: public PartialViewResult Search(string q, int? page, int? pageSize) { ViewBag.SearchQuery = q; //Searching and sorting l

我在谷歌上搜索过,虽然有几个人问过这个问题,但我发现没有人给出有效的解决方案

我使用PagedList包在MVC应用程序中创建页面。我正在通过Ajax加载页面。问题是我无法保留我的搜索词(更改页面就像什么都没有被过滤过一样)

以下是我的方法:

public PartialViewResult Search(string q, int? page, int? pageSize)
{
    ViewBag.SearchQuery = q;
    //Searching and sorting logic, not really relevant
    return PartialView("_SearchedTable", listObj.ToPagedList((int)page, (int)pageSize));
}
如果我在局部视图中查看ViewBag.SearchQuery项,我可以看到它,这正是我所期望的。但每当我更改页面时,发送到控制器的所有内容都是空的。这是我的页面项目

@Html.PagedListPager(Model, page => Url.Action("Search",
    new { q = ViewBag.SearchQuery, page = page }), 
    PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing(
        new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "main-table"}))
查看调试器中的intellisense,所有内容都具有我期望的值,直到该元素再次将数据发送到搜索方法,在这种情况下,所有内容都以“null”的形式从搜索方法中出来。当我不使用Ajax时,让它在每次页面更改时调用完整索引视图方法,它可以很好地保留搜索。我唯一添加的是第三个参数,它支持不引人注目的ajax和ajax选项

编辑:我通过将HTML助手放在局部视图中解决了这个问题,这样每次刷新时都会执行它。否则,@Url.Action()方法生成的锚定标记将永远不会更改,并且由于第一次加载页面时,所有内容都为null,因此在输入搜索词时,它们从未更新

@Html.PagedListPager(Model.MovieInforamtions, page => Url.Action("GetMovieDatabase", page }), PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing( new AjaxOptions(){  HttpMethod = "GET", UpdateTargetId = "movie_grid"}))

@arjit的评论帮助解决了类似的问题。其中movie\u grid是一个DIV的id。

是的,你提到了DIV吗?显示更多的代码,然后尝试
@Html.PagedListPager(Model.movieinformations,page=>Url.Action(“GetMovieDatabase”,page}),PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing(新的AjaxOptions(){HttpMethod=“GET”,UpdateTargetId=“movie\u grid”}))