Обычно вы отправляете только какой-то идентификатор для действия Подробности, например, ссылка будет выглядеть как / products / details / 15 для отображения сведений о продукте с идентификатором 17. Действие Detail затем получит необходимые данные с использованием идентификатора в качестве ключа, например, из базы данных или сеанса.
Тем не менее, вы можете создать свой собственный ModelBinder, чтобы сделать это автоматически, по следующим направлениям:
public class MyModelBinder : IModelBinder
{
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var val = bindingContext.ValueProvider.GetValue("id");
var id = int.Parse(val.AttemptedValue);
return LoadFromDatabase(id);
}
}
Так что ваше действие может выглядеть так:
public ViewResult Details(MyModel model)
{
return View();
}