Звучит так, как будто вы хотите позвонить в контроллер книг, скажем, с помощью действия «Поиск». Так, например, вы можете позвонить в / Books / Search / <поисковое выражение> / 1 или / Books / Search / <поисковое выражение> / 2 и т. Д. (Есть несколько разных способов форматирования этих URL, но это в основном это вопрос личных предпочтений) Если вы хотите, чтобы URL-адреса отображались так, как вы их называли выше (без действия в URL-адресе), это можно сделать с помощью маршрутизации, что-то вроде этого:
routes.MapRoute(
"Books",
"Books/{searchExpr}/{pageId}",
new { controller = "Books", action = "Search", searchExpr = "", pageId = 1 }
);
Я думаю, что основная проблема заключается в том, что вы пытаетесь использовать всю парадигму WebForms PostBack в ситуации, когда вам, вероятно, лучше отправлять информацию на сервер в виде URL-адреса или строки запроса. Единственный раз, когда вы действительно собираетесь публиковать здесь данные формы, это когда пользователь вводит что-то в поле поиска и нажимает кнопку Поиск - в этот момент контроллер передает выражение поиска в соответствующий View, поместив его в ViewData, и оттуда View может извлечь его и снова заполнить это текстовое поле на странице результатов.