Если вы используете Razor (я понимаю, что OP спросили четыре года назад, прежде чем Razor был изобретен, но люди, находящие это, возможно, используют его).
Мне удалось заставить что-то работать, используя встроенный метод @helper.
@helper RunnerLink(PersonSearch model, int page)
{
var routeParms =new RouteValueDictionary(model.GetType().GetProperties().ToDictionary(p => p.Name, p => p.GetValue(model, null)));
routeParms.Add("page", page.ToString());
routeParms.Add("Controller", "Property");
@Html.ActionLink("Search", "Index", routeParms)
}
Использование будет простым -
@RunnerLink(myPersonSearchInstance, 1)
Это не самое элегантное решение, но оно хорошо работает, если вы хотите передать объект в качестве routeValue, но вам нужно передать дополнительные элементы, такие как Controller
, Area
или в случае OP page
.