我在 App_Code 文件夹里面的CustomHelpers.cshtml里面创建了一个声明性的Razor html助手:
\s(\d+\/\d+)+
这很好用。但是当我用@helper RadioButtonList(string groupName, IEnumerable<System.Web.Mvc.SelectListItem> items)
{
<div>
@foreach (var item in items)
{
<input type="radio" name="@groupName"
value="@item.Value"
@if (item.Selected) { <text>checked="checked"</text> } />
<br/>
}
</div>
}
替换input
时:
Html.Helper
它在帮助器中的@Html.RadioButton(@groupName, @item.Value, false) <br />
上给出了一个空引用异常。有人可以告诉我为什么吗?
我称之为:
Html.RadioButton
答案 0 :(得分:0)
我通过将WebViewPage page
添加到我的助手来解决了我的问题:
@using System.Web.Mvc.Html
@helper RadioButtonList(WebViewPage page, string groupName, IEnumerable<System.Web.Mvc.SelectListItem> items)
{
<div>
@foreach (var item in items)
{
@page.Html.RadioButton(@groupName, @item.Value, false) <br />
}
</div>
}
我称之为:
@CustomHelpers.RadioButtonList(this,"name", (System.Web.Mvc.SelectListItem[])ViewBag.Tags)