在MVC Razor中,如何正确地将查询字符串参数添加到html.actionlink?

时间:2015-06-19 15:58:58

标签: asp.net-mvc razor asp.net-mvc-5

我有一个MVC Razor页面,我试图在URL中添加一个查询字符串参数。

<td>                
     @Html.ActionLink(item.Student_Name, "Index", "FourCourseAuditDetails", 
           new { filterByStudent = item.Student_Name})
</td>

我想要的结果是:http://[server]/FourCourseAuditDetails/Index?filterByStudent="[item.Student_Name]",但是当我测试页面时,锚点href attirubte看起来像这样:http://[server]/[route of current view]?length=[integer value]

根据Intellsense和Html.ActionLink描述,我使用了正确的参数,但显然有些不对。

我想到的是item.Student_Name是一个包含空格和逗号的字符串。我试过了filterByStudent = item.Student_Name.toString(),这没什么用。我仍然认为这是问题的原因,但我不知道我还能做些什么。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

问题来自于LinkExtensions.ActionLink Method (HtmlHelper, String, String, String, Object)

没有过载的事实

使用重载方法LinkExtensions.ActionLink Method (HtmlHelper, String, String, String, Object, Object)

@Html.ActionLink((string)item.Student_Name, "Index", "FourCourseAuditDetails", 
       new { filterByStudent = item.Student_Name}, null)

还需要输入强制转换item.Student_Namestring