2010-04-30 4 views
1

ont une action qui génère des postes actifs. Le code est ci-dessous; Public ViewResult OpenVacancies() { var openvacancies = db.GetActiveVacancies(); return View (openvacancies); Je veux utiliser cette liste sur plusieurs pages, donc je suppose que la meilleure chose à utiliser est html.renderaction (s'il vous plaît corrigez-moi si je me trompe ici).RenderPartial ou RenderAction

S'il vous plaît noter que la vue et le contrôle .ascx sont dans une zone.

J'ai ensuite créé une vue par un clic droit dans l'action et créer un .ascx et une vue fortement typée de vacance. J'ai choisi un contenu de vue de "Liste".

J'ai ensuite ajouté cette ligne à la page souhaitée;

Veuillez noter que la vue et le contrôle .ascx se trouvent dans une zone.

L'erreur que je suis arrivé est;

Le type ou le nom namespace « Vacancy » n'a pas pu être trouvé (vous manque une directive à l'aide ou une référence d'assemblage?)

le code .ascx est ci-dessous;

> » %>
<table> 
    <tr> 
     <th></th> 
     <th> 
      VacancyID 
     </th> 
     <th> 
      JobTitle 
     </th> 
     <th> 
      PositionID 
     </th> 
     <th> 
      LocationID 
     </th> 
     <th> 
      JobDescription 
     </th> 
     <th> 
      JobConditions 
     </th> 
     <th> 
      Qualifications 
     </th> 
     <th> 
      RequiredSkills 
     </th> 
     <th> 
      Certifications 
     </th> 
     <th> 
      AdvertDate 
     </th> 
     <th> 
      AdvertExpiryDate 
     </th> 
     <th> 
      Status 
     </th> 
     <th> 
      StaffLevel 
     </th> 
     <th> 
      LineManagerEmail 
     </th> 
     <th> 
      ApprovalFlag 
     </th> 
     <th> 
      RequisitionDate 
     </th> 
    </tr> 

<% foreach (var item in Model) { %> 

    <tr> 
     <td> 
      <%= Html.ActionLink("Edit", "Edit", new { id=item.VacancyID }) %> | 
      <%= Html.ActionLink("Details", "Details", new { id=item.VacancyID })%> | 
      <%= Html.ActionLink("Delete", "Delete", new { id=item.VacancyID })%> 
     </td> 
     <td> 
      <%= Html.Encode(item.VacancyID) %> 
     </td> 
     <td> 
      <%= Html.Encode(item.JobTitle) %> 
     </td> 
     <td> 
      <%= Html.Encode(item.PositionID) %> 
     </td> 
     <td> 
      <%= Html.Encode(item.LocationID) %> 
     </td> 
     <td> 
      <%= Html.Encode(item.JobDescription) %> 
     </td> 
     <td> 
      <%= Html.Encode(item.JobConditions) %> 
     </td> 
     <td> 
      <%= Html.Encode(item.Qualifications) %> 
     </td> 
     <td> 
      <%= Html.Encode(item.RequiredSkills) %> 
     </td> 
     <td> 
      <%= Html.Encode(item.Certifications) %> 
     </td> 
     <td> 
      <%= Html.Encode(String.Format("{0:g}", item.AdvertDate)) %> 
     </td> 
     <td> 
      <%= Html.Encode(String.Format("{0:g}", item.AdvertExpiryDate)) %> 
     </td> 
     <td> 
      <%= Html.Encode(item.Status) %> 
     </td> 
     <td> 
      <%= Html.Encode(item.StaffLevel) %> 
     </td> 
     <td> 
      <%= Html.Encode(item.LineManagerEmail) %> 
     </td> 
     <td> 
      <%= Html.Encode(item.ApprovalFlag) %> 
     </td> 
     <td> 
      <%= Html.Encode(String.Format("{0:g}", item.RequisitionDate)) %> 
     </td> 
    </tr> 

<% } %> 

</table> 

<p> 
    <%= Html.ActionLink("Create New", "Create") %> 
</p> 

Répondre

0

Tout d'abord, si vous voulez simplement réutiliser votre point de vue sur plusieurs pages, vous devez utiliser une vue partielle partagée (placez-le dans le dossier partagé) avec <% Html.RenderPartial (. « OpenVacancies »);%>

de deuxième, en fonction de votre extrait de code, votre vue partielle ne semble pas être fortement typées au lieu de

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> 

vous voulez quelque chose comme ceci:

.
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<Vacancy>>" %> 
+0

salut james..i a fait cela et a pas de joie .. – femi

Questions connexes