我试图提供一个链接到搜寻过滤器的结果。

    <%= Html.ActionLink("Filter Results", "Index", new { page = Model.RestaurantList.PageIndex(), searchText = Model.SearchText, useFilter = true, filterOption = Model.FilterOption, filterText = Model.FilterText }, null)%>

控制器的定义是这样

 public ActionResult Index(int? page, string searchText, bool useFilter, string filterText, string filterOption)

然而,当我调试这个价值没有设置适当,即使是useFilter变量。

我的链接呈现"localhost"/home/index/true?page=0

任何想法如何解决这个问题?

有帮助吗?

解决方案

代码段看起来很好。我想有2个可能的错误:

  1. 错误的路线的信息:检查 路线。图路线的(...)通话 全球性的。ascx.cs/vb文件,以确保 一个路线,为家#索行动 正确配置
  2. 错误的控制器:尝试使用载的ActionLink其中明确指定一个控制器

如果你仍然不能使它的工作,你可能会想要张贴更多的信息(如路线的映射代码,名视/控制器)

其他提示

它看起来像它应该工作。

您是否已经验证您传递给ActionLink的模型领域实际包含数据的?

  

然而,当我调试此值没有被正确设置,即使是useFilter变量。   我的链接呈现本地主机的/ home /索引/真的吗?页= 0

我觉得你useFilter参数实际呈现。其映射到I猜测的路由。

尝试为SEARCHTEXT设置硬编码的值

  

如果它出现,那么你没有设置你的模型在控制器中。

我有一个类似的情况。

像这样:

Html.ActionLink("Click me", "Index", "Student", 
        { ID = theclass.StudentID }, null) 

总是呈现为

localhost/myapp/Student/Index/1234

当我尝试,我注意到,Index部分从URL中消失了,如果我从ID更改参数名称类似IDX

localhost/myapp/Student/?IDX=1234

原来,参数名称ID是因为在Global.asax.cs中的默认路由条目(其设置的RESTful业务对象访问模式)

的特殊

要解决这个问题,我简单地使用Index以ID停止代替这样定义的另一种方法:

public ActionResult Detail(int ID)

毕竟,每个问题的REST设计原则,Index是为显示“业务对象的上市”或某种业务对象,而不是一个单一的业务对象的集合。因此,通过业务对象ID Index是一种违反格局。

而不是扭曲的手臂,迫使我笨拙的设计,我改成自然的方式。

相信用于设计Index入口点最好的做法是保持它的参数少,或通过仅过滤/排序参数。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top