2012-05-15 3 views
2

У меня есть контроллер и один из его методов (действий), доступ к моей базе данных элементов. Этот метод проверяет тип элемента. Как показать частичное представление только в том случае, если элемент, полученный из моей базы данных, имеет определенный тип?Как вернуть частичный вид в контроллере в ASP.NET MVC3?

пример

Действия контроллера:

public ActionResult CheckItem(Koko model) 
{ 
    var item = db.Items.Where(item => item.Number == model.Number).First(); 
    if(item.Type=="EXPENSIVE") 
    { 
     //show partial view (enable my partial view in one of my Views) 
    } 
} 

ответ

8

Вы можете вернуть результат PartialView действий:

public ActionResult CheckItem(Koko model) 
{ 
    var item = db.Items.Where(item => item.Number == model.Number).First(); 
    if (item.Type=="EXPENSIVE") 
    { 
     return PartialView("name of the partial", someViewModel); 
    } 

    ... 
} 

Теперь действие контроллера будет возвращать частичный HTML. Это, очевидно, означает, что вам может понадобиться использовать AJAX, чтобы вызвать это действие контроллера, иначе вы получите частичный вид, который заменит текущее окно браузера. В обратном вызове AJAX-запроса вы можете повторно добавить частичный HTML-код в DOM, чтобы увидеть обновление.

+0

ahaha ... я думаю, что я делаю неправильно ... на самом деле, мой частичный вид содержит только кнопки ... если элемент определенного типа, он просто покажет дополнительные кнопки в браузере .... взамен PartialView («имя частичного», someViewModel); что такое someViewModel, мое частичное представление содержит только кнопки ... –

+0

Если вам не нужна модель, вы можете опустить этот аргумент. Он в основном представляет собой модель, которую вы можете передать в частичный вид. –

+1

Я думаю, что это не то, что вы должны делать в своем контроллере. Это только пользовательский интерфейс, и поэтому его следует обрабатывать в вашем представлении. Просто проверьте, есть ли у вашей модели определенный тип (ваше свойство) и соответственно добавьте кнопки. Этот ответ Дарина показывает то, что вы просили, но это не то, что вы хотите (что из-за вашего плохого описания проблемы). – Styxxy

Смежные вопросы