1

我是 MVC 的新手,并尝试像这样编写一个示例 html 帮助器,这是我的 html 帮助器代码。

namespace MvcPractise.Extension
{
    public static class LabelHelper
    {
        public static string Label(this HtmlHelper helper, string target, string text)
        {
            return String.Format("<label for='{0}'>{1}</label>", target, text);

        }
    }
}

在我看来,我按如下方式使用它

@using MvcPractise.Extension.LabelHelper
@model MvcPractise.Models.EmployeeModel

在视图的顶部,我声明或引用上面的命名空间和类名

并像使用它一样@Html.Label("firstName", "First Name:")

但是当我调试代码时,我的扩展方法没有受到影响。我可以理解我做错了什么,但无法弄清楚。所以请帮忙。谢谢

4

4 回答 4

2

如果我是你,我不会将它命名为 Html Helper 的原始名称。我会尝试类似的东西:

public static string CustomLabel(this HtmlHelper helper, string target, string text)
{
   return String.Format("<label for='{0}'>{1}</label>", target, text);
}

之后,只需包含命名空间(不是类的整个路径),例如:

@using MvcPractise.Extension

并作为扩展方法,在Html属性上使用它:

@Html.CustomLabel("firstName", "First Name:")
于 2013-09-16T11:18:38.343 回答
1

@Html.Label是一个内置的助手,你需要尝试另一个名字,比如@Html.LabelEx

将您的扩展方法重命名为不在标准库中的东西!它应该工作!

于 2013-09-16T11:21:18.337 回答
-1

尝试这个:

  public static string Label(string target, string text)
    {
        return String.Format("<label for='{0}'>{1}</label>", target, text);

    }
于 2013-11-07T07:58:03.173 回答
-1

尝试如下可能是因为歧义,Label 并且您使用的是Htmlhelper 而不是customhelper的标签

@using MvcPractise.Extension

@LabelHelper.LabelCustom("firstName", "First Name:")

您的扩展方法:

    public static string LabelCustom(string target, string text)
    {
        return String.Format("<label for='{0}'>{1}</label>", target, text);

    }
于 2013-09-16T11:13:03.523 回答