Отображение динамического содержимого в ASP.NET MVC 3 - PullRequest
0 голосов
/ 29 сентября 2011

У меня следующая структура:

  1. Site.Master

  2. Домой - Просмотр

  3. HomeController - Controller

В Site.Master у меня есть заголовок, который содержит несколько ссылок ActionLink, одним из которых является Faq.В представлении Home у меня есть HTML, который по существу отображает статическое содержимое, но в центральной панели / div я хочу иметь динамическое содержимое, основанное на определенных HTML.ActionLinks, по которым пользователь щелкает.Так, например, сначала я хочу, чтобы центральный DIV отображал вступление - но если пользователь нажимает на мой Faq ActionLink, я хочу, чтобы центральный DIV отображал контент, специфичный для моего Faq.

В HomeController Iиметь следующее:

[HttpGet]
    public ActionResult Intro()
    {
        var introRequest = _gatewayService.GetContent(new GetContentRequest { Content = ContentTypes.Introduction });

        ViewData["content"] = introRequest.Result;

        return View();
    }

 [HttpGet]
    public ActionResult Faq()
    {
        var faqRequest = _gatewayService.GetContent(new GetContentRequest { Content = ContentTypes.Faq });

        ViewData["content"] = faqRequest.Result;

        return View();
    }

Идея состоит в том, что ссылка действия для Faq будет выглядеть примерно так:

<%= Html.ActionLink("Faq","Faq","Home") %> 

Ответы [ 2 ]

1 голос
/ 29 сентября 2011

Как сказал @Valamas, используйте Ajax.ActionLink. Например,
В разметке:

<div id=”faqContent”>
   @Ajax.ActionLink(“Click here to see FAQ!”,
      “Faq”,
      new AjaxOptions{
         UpdateTargetId=”faqContent”,
         InsertionMode=InsertionMode.Replace,
         HttpMethod=”GET”
      })
</div>

А в контроллере:

public ActionResult Faq()
{
    var faqRequest = _gatewayService.GetContent(new GetContentRequest { Content = ContentTypes.Faq });

    return PartialView("Faq", faqRequest.Result);
}

И, наконец, есть частичный просмотр Faq.chtml с необходимым HTML для FAQ.

0 голосов
/ 29 сентября 2011

Во-первых, вам нужно изменить результат ваших методов действий в контроллере, вместо actionresult вы можете использовать jsonresult Во-вторых, в представлении вы можете использовать jquery для загрузки динамического содержимого

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