如何在 MVC 中创建自定义 HTML 帮助程序 Asp.Net
本文关键字:HTML 帮助程序 Asp Net 自定义 创建 MVC | 更新日期: 2023-09-27 18:31:23
>我是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:")
一样使用它
但是当我调试代码时,我的扩展方法没有被命中。 我可以理解我做错了什么,但无法弄清楚。 所以请帮忙。 谢谢
如果我是你,我不会将其命名为Html助手中的原始名称。我会尝试这样的事情:
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:")
@Html.Label
是一个内置的助手,你需要尝试另一个名字,比如@Html.LabelEx
将您的扩展方法重命名为标准库中没有的内容!它应该有效!
试试这个:
public static string Label(string target, string text)
{
return String.Format("<label for='{0}'>{1}</label>", target, text);
}
尝试如下可能是因为Label
的不知名并且您使用的是Html
助手而不是custom
助手的标签
@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);
}