Разрешить Layout View и другие виды использовать одну и ту же модель - PullRequest
0 голосов
/ 10 октября 2011

Я использую ASP.NET MVC с синтаксисом Razor. Я пытаюсь найти лучший способ получить данные и передать их моему приложению для доступа как к представлению макета (общему), так и к другим представлениям. В некоторых случаях может потребоваться передача дополнительных моделей в представления. Я смотрел на такие элементы, как BaseViewModel , но для этого мне нужно было бы передать модель для каждого ActionResult, который будет ее использовать. Данные меняются для каждого пользователя и могут меняться в течение одного сеанса.

Какой лучший способ сделать это?

Ответы [ 2 ]

3 голосов
/ 10 октября 2011

Ваш вопрос немного размыт, но я думаю , что вы спрашиваете, как получить модель для макета?

Я бы не создал бы BaseViewModel для этого, поскольку на самом деле это не is-a отношение.

Вместо этого я бы сделал что-то, как я описал здесь: http://blog.gauffin.org/2011/09/getting-information-into-the-layout-without-using-viewbag/

2 голосов
/ 10 октября 2011

Создайте BaseViewModel и сделайте MyModel дочерним для этой модели (то есть: public class MyModel:BaseViewModel). В этой BaseViewModel поместите все общие свойства, которые должен использовать ваш макет.

После этого вам необходимо указать общий макет:

@model BaseViewModel
...