2012-12-25 2 views
1

Привет Я пытаюсь передать строку запроса к ссылке и я прописан так:Возвращение строки запроса в ActionLink

@Html.ActionLink(subcategory,"Index" , "Products" , new { category = subcategory}) 

Как я написал это я получаю это, и кажется, что это делает не признают ActionName:

http://localhost:2100/?Length=8 

Если удалить новую {категорию = подкатегорию} я получаю это:

http://localhost:2100/Products 

W шляпа Я хотел бы, ActionLink сделать, это вернуть что-то вроде этого:

http://localhost:2100/Products/Index?substring=9 
+0

подкатегорию переменная aC# –

ответ

3

Вы используете wrong overload в Html.ActionLink. Вот почему 3-й аргумент "Products" интерпретируется как значение маршрута, которое дает ?Length=8 в URL-адресе.

Как заметка на полях: Length=8 исходит из string типа, который имеет одно свойство Length и длины "Products" струны 8.

Так что вам просто нужно использовать one of the correct overloads:

@Html.ActionLink(subcategory, //link text 
       "Index", //action name 
       "Products", //controller name 
       new { category = subcategory}, //route values 
       null // html attributes 
       ) 
Смежные вопросы