Как передать модель (и все остальное) из вида в частичный вид - PullRequest
1 голос
/ 01 октября 2011

Перегрузка для @ Html.Partial принимает модель, поэтому в «первичном» представлении я вставил this.model:

@Html.Partial("_GenericIndex", this.Model ) 

Я попытался просто поместить @Model в частичное представление, чтобы увидеть,что-то обнаружилось, но я ничего не получил.

Итак, как мне использовать этот параметр this.Model в частичном представлении?Я видел некоторые ужасные решения, где он был подготовлен специально для частичного просмотра в viewdata или что-то в этом роде.Конечно, в этом нет необходимости?

Я просто хочу получить доступ к аргументу Html.Partial, который я ввожу в него .

Кстати, мой контроллер и действие похожи на это:

public class TestController : Controller
{
    IRepository<Customer> customerrepo = RepositoryFactory.GetRepository<Customer>();

    //
    // GET: /Test/
    public ActionResult Index()
    {
        Customer cust = customerrepo.GetByID("1");
        return View(cust);
    }
}

Ответы [ 2 ]

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

Просто эта строка в верхней части вашего частичного представления:

@model Customer

Тогда вы можете использовать @Model в вашем частичном просмотре, и он будет представлять объект, который вы передали в вашем вызове @Html.Partial("_GenericIndex", Model).даже вы можете вызвать @ Html.Partial ("_ GenericIndex"), который передаст модель текущей страницы на частичную страницу.

1 голос
/ 01 октября 2011

Вы установили тип модели при частичном просмотре?

@{
    var model = ViewContext.Controller.ViewData.Model as Customer;
}
...