asp.net-mvc – ASP.NET MVC View可以使用来自不同项目的模型吗?
|
我在 WPF项目中有一个名为Node的ADO.NET Entity Framework类.我想在同一解决方案中的不同ASP.NET MVC项目中使用它. 我的节点控制器:
Public Class NodeController
Inherits System.Web.Mvc.Controller
Function Display(ByVal id As Guid) As ActionResult
Dim db As New WpfApplication1.Model1Entities
Dim m As WpfApplication1.Node = (From n In db.Node _
Where n.Id = id _
Select n).First
Return View(m)
End Function
End Class
当我运行项目并尝试导航到http://…/Node/Display/ [有效ID]时 我的显示操作出错:
我读过这个错误可能是由于a codebehind class naming conflict.但我认为这不是这种情况. 我是否可以不使用其他项目中的模型来创建强类型的ASP.NET MVC视图? 更新1: 我已经尝试在Display.aspx页面上导入命名空间,但没有 <%@ Import Namespace="WpfApplication1" %> 要么 <%@ Import Namespace="SolutionName.WpfApplication1" %> 要么 <%@ Import Namespace="SolutionName.WpfApplication1.Model1Entities" %> 防止错误. 更新2: 我已经尝试将命名空间添加到我的Views / Web.config文件中,但不是 <add namespace="SolutionName.WpfApplication1" /> 也不 <add namespace="SolutionName.WpfApplication1.Model1Entities" /> 防止错误. 更新3: 自从添加命名空间后,我现在收到此警告:
这是一个线索吗? 更新4: 我已将模型从我的WpfApplication1移动到新的ClassLibrary1. 我清理了控制器.
Imports ClassLibrary1
Public Class NodeController
Inherits System.Web.Mvc.Controller
Function Display(ByVal id As Guid) As ActionResult
Dim db As New Model1Entities
Dim m As Node = (From n In db.Node _
Where n.Id = id _
Select n).First
Return View(m)
End Function
End Class
我清理了我的视图. <%@ Import Namespace="ClassLibrary1" %> <%@ Page Title="" Language="VB" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage(Of Node)" %> 我不再看警告. 但我仍然得到运行时错误. 解决方法仔细检查您的Views / Web.config是否具有引用项目的命名空间:<system.web>
<pages>
<namespaces>
<add namespace="SolutionName.WpfApplication1.Model1Entities" />
</namespaces>
<pages>
</system.web>
更新: 我没有任何WPF应用程序来测试它……我以为你试图使用“类库”项目.这肯定会奏效.是否有可能稍微重构您的应用程序以将“模型”拉出到他们自己的项目中?这样您就可以将其编译为类库. 更新2: 奇怪的是,这几乎就像你的页面没有正确地从System.Web.Mvc继承.确保您的Views / Web.config看起来像这样: <?xml version="1.0"?>
<configuration>
<system.web>
<httpHandlers>
<add path="*" verb="*"
type="System.Web.HttpNotFoundHandler"/>
</httpHandlers>
<pages validateRequest="false"
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter,System.Web.Mvc,Version=1.0.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35"
pageBaseType="System.Web.Mvc.ViewPage,PublicKeyToken=31BF3856AD364E35"
userControlBaseType="System.Web.Mvc.ViewUserControl,PublicKeyToken=31BF3856AD364E35">
<controls>
<add assembly="System.Web.Mvc,PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
</controls>
<namespaces>
<add namespace="SolutionName.WpfApplication1.Model1Entities"/>
</namespaces>
</pages>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler"/>
</handlers>
</system.webServer>
</configuration>
更新3:运行时错误看起来不像是MVC项目. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 我可以愚弄HttpRequest.Current.Request.IsLoca
- ASP.net MVC – 在区域之间共享部分
- asp.net-mvc – 提交表单并将数据传递给FileStreamResult类
- azure – 错误System.BadImageFormatException服务结构
- ASP.NET MVC4 Razor模板简易分页效果
- asp.net-mvc – 为什么DisplayFormat DataFormatString不工
- file-upload – 增加Kestrel的上传请求长度限制
- asp.net-mvc-4 – 通过ADAL JavaScript Ajax和KnockoutJs的
- asp.net – 如何从c#调用javascript函数
- asp.net-mvc – 避免“类或CssClass值未定义”ASP.NET MVC中
- ASP.NET会员密码重置
- asp.net-mvc – ASP.Net MVC – 视图中的编译器错
- asp.net-mvc – MVC 4从基本路由中删除“home”
- asp.net-mvc – 将数据动态绑定到asp.net mvc中的
- asp.net-mvc-4 – MVC4如何挂钩OnSessionStart事
- asp.net-mvc – 应用程序级排队/网站流量管理
- asp.net-mvc – UpdateModel和TryUpdateModel
- asp.net-mvc – ASP.NET MVC路由Maproute参数
- 有没有办法加快asp.net中的编辑 – 编译 – 调试
- asp-classic – Response.Write和%=%
