我的扩展方法的定义是:
public static class HtmlHelperExtensions
{
public static Boolean MatchRoute(this HtmlHelper Html,
BaseViewModel Model,
String ControllerName,
params String[] ActionNames)
{
...
}
}
这就是我在视图中使用的方式
<li class="questions <% = Html.GetSelectedClass(Model, "questions", "viewquestion", "index") %>">
但是由于某些奇怪的原因,当调用该方法时,ActionNames
的2个参数中的第一个传递给该方法。发生了什么事?
答案 0 :(得分:2)
不知道但这应该有效。您所看到的是在您的视图中调用Html.GetSelectedClass
并在您的扩展方法中调用MatchRoute
并返回布尔值而不是字符串。此外,如果您的视图是强类型的,您不需要传递模型,您可以这样做:
public static class HtmlHelperExtensions
{
public static MvcHtmlString GetSelectedClass(
this HtmlHelper<BaseViewModel> html,
string controllerName,
params string[] actionNames
)
{
BaseViewModel model = html.ViewData.Model
...
}
}
然后:
<%= Html.GetSelectedClass("questions", "viewquestion", "index") %>