无法从mvc应用程序中的另一个c#项目获取属性引用

时间:2015-03-05 12:19:05

标签: c# asp.net asp.net-mvc asp.net-mvc-4 razor

我创建了one c# library project。 我创建了another MVC application added c# project reference into mvc applciation

现在在View我想访问c#类库项目中的那个属性,但我无法这样做为什么?

C#项目代码

namespace Helper.BaseClasses
{
    public abstract class BaseView<T> : WebViewPage<T>
    {
        private TestClass localizer;

        public override void InitHelpers()
        {
            base.InitHelpers();
            localizer = new TestClass();
        }

        public TestClass Lang
        {
            get { return localizer; }
        }
    }
}


public class TestClass 
{
 public string TestMethod(string input)
        {
//some code
}
}

Mvc应用程序添加了c#的参考dll Index.cshtml

<h4>@Lang.TestMethod("Customer agreements", "")</h4>

当我尝试在Index.cshtml中使用TestMethod时,会给我错误

  

名称TestMethod在当前上下文中不存在

添加c#project dll之后为什么我收到此错误:(

1 个答案:

答案 0 :(得分:1)

您是否设置了&#34; pageBaseType&#34;在web.config中? 如果没有,请尝试将其设置为基类。 要做到这一点,你需要找到&#34;页面&#34;标记在〜/ Views / web.config 中。 它会是这样的:

<pages pageBaseType="System.Web.Mvc.WebViewPage">
  <namespaces>
    <add namespace="System.Web.Mvc" />
    <add namespace="System.Web.Mvc.Ajax" />
    <add namespace="System.Web.Mvc.Html" />
    <add namespace="System.Web.Optimization"/>
    <add namespace="System.Web.Routing" />
    <add namespace="WebApplication1" />
  </namespaces>
</pages>

您需要将其更改为:

<pages pageBaseType="Helper.BaseClasses.BaseView">
  <namespaces>
    <add namespace="System.Web.Mvc" />
    <add namespace="System.Web.Mvc.Ajax" />
    <add namespace="System.Web.Mvc.Html" />
    <add namespace="System.Web.Optimization"/>
    <add namespace="System.Web.Routing" />
    <add namespace="WebApplication1" />
  </namespaces>
</pages>

重建解决方案。 希望这会有所帮助。