Использование одного и того же кода в разных (частичных) представлениях - PullRequest
0 голосов
/ 01 июня 2010

Может быть, этот вопрос довольно прост, потому что я новичок в MVC2. У меня есть простой демонстрационный проект MVC.

(1) Представление со слабым типом: Index.aspx

<% Html.RenderPartial("ArticalList", ViewData["AllArticals"] as List<Artical>); %>

(2) Частичное представление со строгим шрифтом: ArticalList.ascx

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<List<Artical>>" %>
<% foreach (Artical a in Model)  { %>
           <%= Html.ActionLink(a.Title, "About", new { id = a.ID })%><br />
<%} %>

(3) Вот HomeController.cs

   public ActionResult Index()
    {
        ViewData["AllArticals"] = Artical.GetArticals();
        return View();
    }

public ActionResult ArticalList()
{
    return PartialView(Artical.GetArticals());
}

Извините, я использую веб-форму "угол", потому что, если я использую веб-форму, при посещении Index.aspx, рендеринг ArticalList.ascx вызовет публичный ActionResult ArticalList (). Но здесь мне нужно написать Artical.GetArticals () дважды за два действия. Как я могу положить их в один?

1 Ответ

1 голос
/ 01 июня 2010

Из того, что я понимаю, как недавний новичок в MVC, также является то, что частичное представление не использует метод действия в контроллере. "ArticalList" является ссылкой только на файл частичного представления и не делает другого запроса для метода действия. Частичное представление получает все свои данные из представления, из которого оно вызывается.

Html.RenderAction может быть поведение, которое вы путаете с.

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