передать содержимое ViewModel на страницу сведений из индекса в MVC3 - PullRequest
0 голосов
/ 29 февраля 2012

Внутри моего контроллера, bazController, я возвращаю список bazViewModels для отображения на странице Index.

Теперь, когда я нажимаю ссылку Details для каждогоэлемент в bazViewModel есть ли способ передать эту конкретную модель представления item на страницу Details?

Я могу передать необходимые данные из модели представления через URL, но я бы предпочелне.

спасибо!

Ответы [ 2 ]

0 голосов
/ 29 февраля 2012

используйте TempData для передачи информации с одной страницы на другую, и она будет очищена после использования на этой странице

Edit: Можно также использовать session, но убедитесь, что сеанс очищается после его использования.

0 голосов
/ 29 февраля 2012

Обычно вы отправляете только какой-то идентификатор для действия Подробности, например, ссылка будет выглядеть как / 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();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...