2009-09-30 76 views
1

我有一个包含asp.net web表单和mvc视图的web应用程序,但遇到视图中强类型模型的问题。ASP.NET和MVC混合应用程序模型不起作用

这是从视图页面指令:

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

但在视图中我有示范性质的访问权限。

在控制器中,我有

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

为什么我没有访问该视图中的Model属性?

回答

1

要在视图中获得强类型模型,您需要使用ViewModel模式outlined here

+0

我试过这个,但似乎没有工作,我的例子非常类似于使用PaginatedList作为模型的晚餐索引 – Jon 2009-09-30 18:44:33

+0

您可以发布代码吗?我已经使用了这种方法,并且能够在我的视图中获得强类型模型,所以我需要查看代码以查看可能缺少的内容。 – 2009-09-30 19:08:48

0

我从你问题的return语句的性质猜测,SurveyResponse继承了某些东西 - 可能是ViewResponse。这不是完全的方式。相反,你需要创建一个封装您要查看的数据的数据对象,然后将它传递通过视图响应:

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

然后你就可以通过Model属性强类型的方式访问MyDataObject。

相关问题