簡體   English   中英

如何在Asp.Net MVC中創建自定義HTML幫助器

[英]How create Custom HTML Helper in Asp.Net MVC

我是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 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:")

@Html.Label是內置的幫助程序,您需要嘗試其他名稱,例如@Html.LabelEx

將擴展方法重命名為標准庫中沒有的內容! 它應該工作!

請嘗試以下操作,這可能是由於Label的模糊性造成的,並且您使用的是Html helper的標簽,而不是custom helper的標簽

@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);

    }

嘗試這個:

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

    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM