ASP.Net MVC имеет действие, которое представляет другое действие - PullRequest
4 голосов
/ 25 марта 2009

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

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

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

Ответы [ 3 ]

6 голосов
/ 26 марта 2009

Пример модели

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);
}

Просмотр (где-то внутри вашего index.aspx, вероятно)

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

Или, если Бритва - ваша чашка чая:

@if(Model.ShowCommentsSection) {
  Html.RenderPartial("Reviews/ReviewPartial", Model);
}
4 голосов
/ 25 марта 2009
// ... Make comment section visible
return Index();
0 голосов
/ 25 марта 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...