我创建了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之后为什么我收到此错误:(
答案 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>
重建解决方案。 希望这会有所帮助。