.NET:从查看

问题描述:

访问静态MVC控制器的方法

我有这个一个.aspx页面中它:.NET:从查看

<%@ Import Namespace="System.Web.Mvc" %> 
<%= AssetController.ScriptTag("/js/Community/CommunityWizard.js")%> 

而且我有一个AssetController类:

Imports System.Web.Mvc 

Public Class AssetController 
    Inherits Controller 

    Public Shared Function ScriptTag(ByVal src As String) As String 
     Return String.Format(
      "<script type='text/javascript' src='/js.mvc?src={0}&{1}'></script>", 
      System.Web.HttpContext.Current.Server.UrlEncode(src), 
      New BuildVersion().ToString() 
     ) 
    End Function 
End Class 

该项目添加到System.Web.Mvc程序集的3.0.0.0版本的引用。

当我尝试在浏览器中查看网页时,我得到一个HTTP 500此消息:

BC30007:需要 集引用“System.Web.Mvc, 版本= 3.0.0.0 , Culture = neutral,PublicKeyToken = 31bf3856ad364e35' 包含基类 'System.Web.Mvc.Controller'。添加一个到你的项目。

是什么给出的?我不明白为什么我可以在我们的ASP.NET Forms/MVC混合应用程序的任何地方使用这个控制器,但不能在视图中使用。

编辑:实际上,当我在.aspx视图中输入<% System.Web.时,甚至不会在Intellisense中出现!Mvc

+0

您是否尝试过清洁和重建应用程序?你确定包含你的视图的项目的MVC 3参考是正确的吗? – 2011-03-16 17:49:48

已解决。在我看来,缺少此:

<%@大会名称= “System.Web.Mvc, 版本= 3.0.0.0,文化=中立, 公钥= 31bf3856ad364e35” %>

+0

是的,错误信息有点儿告诉你什么问题是xD – BlackTigerX 2011-03-16 19:07:40

您可能错过了通常位于/ Views文件夹中的web.Config。