如果我创建一个新的WebRazorHostFactory这样的:如何创建不会搞乱intellisense的WebRazorHostFactory?
namespace Test
{
public class TestMvcWebRazorHostFactory : WebRazorHostFactory
{
public override WebPageRazorHost CreateHost(string virtualPath, string physicalPath)
{
WebPageRazorHost host = base.CreateHost(virtualPath, physicalPath);
if (!host.IsSpecialPage)
{
return new MvcWebPageRazorHost(virtualPath, physicalPath);
}
return host;
}
}
}
和〜引用它/浏览/ Web.config中是这样的:
<system.web.webPages.razor>
<host factoryType="Test.TestMvcWebRazorHostFactory" />
...
</system.web.webPages.razor>
我认为文件中的智能感知不再承认“模式”和‘TextBoxFor’中:
@model Test.Models.Person
<div>
@this.Html.TextBoxFor(x => x.Name)
</div>
我如何做一个新WebRazorHostFactory那不乱了智能感知的视图文件?
在MvcWebPageRazorHost我看到他们运行一个函数“GetRidOfNamespace(”System.Web.WebPages.Html“);”,但我不知道这是否是问题?我试图编写一个不同于MvcWebPageRazorHost而没有此功能的类,它似乎没有任何作用。谢谢。
GetRidOfNamespace方法不应该导致这个问题,它会删除由ASP.Net Web页提供的名称空间,因为它们与ASP.Net MVC冲突。 MvcWebPageRazorHost然后继续**添加** MVC相关的命名空间。至于发生了什么,我不是100%确定的。你能解释你为什么要改变主持人吗?智能感知应该在通过web.config注册的自定义主机上进行,但它是为MVC设计的,所以有可能出现故障。 – 2011-04-04 17:33:55
我正在着手编写一个自定义的WebPageRazorHost,它可以删除大多数标签之间的空格(例如,因为它们位于不同的行上,所以删除之间的空格: )。我按照预期工作,但intellisense无法正常工作,所以我只使用了上面给出的最基本的示例(提供默认的MvcWebPageRazorHost),这对于intellisense也不起作用。 – DangerMoose 2011-04-04 21:46:28