2011-02-15 6 views
0

je la vue partielle suivante NewsSummary.ascx utilisé pour afficher la liste des résumés d'articles de nouvelles:ASP.NET MVC2 rendu une vue partielle avec son propre contrôleur

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<AkwiMemorial.Models.Article>>" %> 
    <table>  
    <% foreach (var item in Model as IEnumerable<AkwiMemorial.Models.Article>) 
     { %> 

     <tr>    
      <td> 
      <strong> 
       <%= Html.Encode(String.Format("{0:MMMM dd yyyy}", item.DateCreated)) %> 
      </strong>    
      </td> 
      <td> 
       <%= Html.Encode(item.Abstract) %> 
      </td> 
      <td> 
       <a class="link1"> <%= Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ })%></a>        
      </td>   
     </tr>  
    <% } %> 
    </table> 

Mon HomeController va chercher des articles à afficher et crée une entrée dans le dictionnaire ViewData de Index.aspx avant qu'il ne soit rendu. Vue partielle est ensuite rendue dans Index.aspx en utilisant Html.RenderPartial avec les listes d'articles de presse transmis comme modèle comme suit:

<% Html.RenderPartial("NewsSummary", ViewData["news"]); %> 

Maintenant, j'ai déjà un NewsController qui va chercher un article de nouvelles par un identifiant donné. Avec le code comme, en cliquant sur le lien Détails de chaque résumé d'article dans la vue partielle NewsSummary invoque une action dans mon HomeController appelée Détails. Comment lier cette action à la méthode Details dans mon NewsController. J'ai regardé dans Html.RenderAction mais n'ai pas pu déterminer comment cela fonctionnera pour moi dans ce scénario.

Avez-vous des idées ou est-ce que je m'approche de la mauvaise façon?

Répondre

0

Vous devez spécifier le contrôleur en tant que paramètre à Html.ActionLink comme ceci:

<%= Html.ActionLink("Details", "Details", "News", new { /* id=item.PrimaryKey */ }, null) %> 
+0

Merci, je vous remercie. –

+0

Est-ce que cela et moi avons maintenant une erreur: La ressource est introuvable. Description: HTTP 404. La ressource que vous recherchez (ou l'une de ses dépendances) a pu être supprimée, son nom a été modifié ou elle est temporairement indisponible. Veuillez vérifier l'URL suivante et assurez-vous qu'elle est épelée correctement. URL demandée:/NewsController/Détails/2. Essayé de spécifier le nom du contrôleur comme "Nouvelles" mais cela n'a pas aidé. Je ne comprends pas. –

+0

Avez-vous une route configurée pour cette URL? – Scott

Questions connexes