我不能为我自己的html助手获得intellisense.我CustomHtmlHelpers.cs
看起来像这样:
using System.Web.Mvc;
using System.Text;
using System.Web;
namespace laget.Web.Helpers
{
public static class CustomHtmlHelpers
{
//MY HELPERS
}
}
Run Code Online (Sandbox Code Playgroud)
在我的Web.config中:
<pages>
<namespaces>
<add namespace="laget.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages"/>
<add namespace="System.Web.Helpers" />
</namespaces>
</pages>
Run Code Online (Sandbox Code Playgroud)
如果我<@using laget.Web.Helpers>
加入我的观点,我会解决智能感知问题.
Web.config中的代码是不够的?
我目前正在建立一个包含5个不同站点的大型项目.所有这些站点都具有相同的"框架"(在视图中为_layout.cshtml,在根目录中为Shared).
我已经建立了一个每个站点都是一个区域的结构,这对我们的需求非常有用.我的问题是,我如何使用一个_Layout.cshtml(一个登录栏,页脚,背景)对所有网站都是相同的,然后一个_Layout.cshtml用于每个网站,而这些网站又通过局部视图调用(例如index.cshtml),然后通过控制器调用?
在MVC 3中创建一个站点,我有这个代码片段,我在设计的几个部分使用.这是一个为网站上的模块创建头部的设计代码.现在想知道这是否是调用此代码段的最佳方式?我应该使用助手还是有更好的方法?
今天我喜欢这样:
public static IHtmlString FrameModuleHeader(this HtmlHelper helper, int Type, string Headline)
{
StringBuilder html = new StringBuilder();
html.Append("<div class='module_top'>");
html.Append("<div class='module_top_left'></div>");
html.Append("<div class='module_top_middle_" + Type + "'><div class='module_top_headline'><h4>" + Headline + "</h4></div></div>");
html.Append("<div class='module_top_right'></div>");
html.Append("</div>");
return MvcHtmlString.Create(html.ToString());
}
Run Code Online (Sandbox Code Playgroud)
然后通过以下方式在视图中调用我的HTML帮助程序:
@ Html.FrameModuleHeader(1,"我的标题")
谢谢!/麦克风