我的情況:如何在MVC創建聲明HTML幫助5
我終於讓周圍創造我自己的博客,而我努力學習儘可能多地與問候到MVC,而這樣做。我試圖在我的「PostView.cshtml
」文件中將自己的代碼顯示爲自定義聲明助手,但我的問題是它不在當前上下文中,我不知道如何實現。
我有一個看看以下兩個問題上SO:
this one是以前版本的MVC(< = 4)和
this one被誰問的問題和ISN的傢伙回答不是很有說服力。
我嘗試了上述建議但沒有成功,希望有人能幫助我。這裏是我的代碼:
Tags.cshtml(在〜/查看/幫手/):
@helper Tags(System.Web.Mvc.HtmlHelper htmlHelper,
ICollection<MyNamespace.Objects.Tag> tags)
{
foreach (var tag in tags)
{
<div class="tags-div">
@MyNamespace.Extensions.ActionLinkExtensions.TagLink(htmlHelper, tag):
</div>
}
}
ActionLinkExtensions.cs(在〜/擴展/ ActionLinkExtensions /)
namespace MyNamespace.Extensions
{
public static class ActionLinkExtensions
{
public static MvcHtmlString TagLink(this HtmlHelper helper, Tag tag)
{
return helper.ActionLink("", ""); //logic removed for simplicity
}
}
}
PostView.cshtml(in〜/ Views/Shared /)//我想用我的自定義幫手:
@model MyNamespace.Objects.Post
<!--extra html removed for simplicity-->
<div>
<span>Tags:</span>@Tags(Html, Model.Tags) // '@Tags' doesn't exist in current context
</div>
我也嘗試添加命名空間爲 '〜/查看/ 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="MyNamespace" />
<add namespace="MyNamespace.Extensions" />
</namespaces>
</pages>
我的 「全名」 我的 「Tag.cs」 類MyNamespace.Objects.Tag
和 「郵報」 的.cs」是MyNamespace.Objects.Post
。
任何解釋和建議的答案也將不勝感激,非常感謝你提前。