2009-09-30 9 views
1

J'ai une application Web contenant à la fois des formulaires Web asp.net et des vues mvc, mais je rencontre des problèmes avec des modèles fortement typés dans la vue.Le modèle d'application ASP.NET et MVC Hybrid ne fonctionne pas

Ceci est la directive de page de la vue:

<%@ Page Inherits="System.Web.Mvc.ViewPage<Survey.Models.SurveyResponse>" Language="C#" MasterPageFile="~/Views/Shared/ExternalSurvey.Master" %> 

mais dans la vue je n'ai pas accès à la propriété du modèle.

Dans le contrôleur j'ai

return (new Survey.Models.SurveyResponse()); 

Pourquoi dois-je pas accès à la propriété du modèle dans la vue?

Répondre

1

Pour obtenir un modèle fortement typé dans la vue, vous devez utiliser le modèle ViewModel outlined here.

+0

J'ai essayé cela mais ne semble pas fonctionner, mon exemple est très similaire à l'index du dîner qui utilise PaginatedList comme modèle – Jon

+0

Pouvez-vous poster le code? J'ai utilisé cette méthode et suis capable d'obtenir des modèles fortement typés dans mes vues, donc j'ai besoin de voir le code pour voir ce que vous pourriez manquer. –

0

Je devine, à partir de la nature de votre déclaration de retour dans la question, que SurveyResponse hérite de quelque chose - peut-être ViewResponse. Ce n'est pas tout à fait le moyen de s'y prendre. Au contraire, vous devez créer un objet de données qui encapsule les données que vous souhaitez voir, puis passer par une réponse de vue:

MyDataObject obj = new MyDataObject(); 
//set some properties, etc 
return View(MyDataObject); 

Vous pouvez alors accéder MyDataObject d'une manière fortement typé via la propriété du modèle.

Questions connexes