2009-03-25 4 views
4

У меня есть две страницы, которые мне нужны, и хочу показать URL/индекс и/обзор. Единственное различие между двумя страницами - это обзор. У меня будет раздел комментариев для просмотра и кнопка «Отправить». В противном случае две страницы идентичны. Я думал, что могу создать пользовательский элемент управления для основного контента.ASP.Net MVC имеет действие, оказывающее другое действие

Однако, если бы я мог сказать, что при действии Review, флаг, чтобы показать материал обзора, и они возвращают остальную часть действия индекса.

Как бы вы (общий) это сделали?

ответ

6

пример модели

public class MyModel 
{ 
    public bool ShowCommentsSection { get; set; } 
} 

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

public ActionResult Index() 
{ 
    var myModel = new MyModel(); 

    //Note: ShowCommentsSection (and the bool type) is false by default. 

    return View(myModel); 
} 

public ActionResult Review() 
{ 
    var myModel = new MyModel 
    { 
    ShowCommentsSection = true 
    }; 

    //Note that we are telling the view engine to return the Index view 
    return View("Index", myModel); 
} 

View (где-то внутри index.aspx вероятно)

<% if(Model.ShowCommentsSection) { %> 
    <% Html.RenderPartial("Reviews/ReviewPartial", Model); %> 
<% } %> 

Или, если Razor - ваша чашка чая:

@if(Model.ShowCommentsSection) { 
    Html.RenderPartial("Reviews/ReviewPartial", Model); 
} 
4
// ... Make comment section visible 
return Index(); 
0

Почему бы вам просто не включить форму комментариев для обзора и использовать код на стороне клиента, чтобы показать или скрыть ее. Учитывая, что для страницы обзора не требуется дополнительных данных, кроме тех, которые уже необходимы для индекса, нет необходимости в поездке туда и обратно. Это позволит удалить действие и просмотреть обзор.

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