C# 自定义html帮助程序下拉列表

C# 自定义html帮助程序下拉列表,c#,html,.net,asp.net-mvc,razor,C#,Html,.net,Asp.net Mvc,Razor,我有一段话: @Html.DropDownList("consultations", Model.ConsultationsTruncated, new { @class = "form-control", @id = "consultations" }) 显示的文本被截断: 例如 字符串s=“Hello Everyone”=>Text=“Hell…”和Value=”“Hello 每个人” 我想用类似的使用扩展方法替换此实现: public static class TruncateDrop

我有一段话:

@Html.DropDownList("consultations", Model.ConsultationsTruncated, new { @class = "form-control", @id = "consultations" })
显示的文本被截断:

例如

字符串s=“Hello Everyone”=>Text=“Hell…”和Value=”“Hello 每个人”

我想用类似的使用扩展方法替换此实现:

 public static class TruncateDropDownList
{

    public static DropDownList TruncateDropDown(this HtmlHelper helper, ListItem[] values)
    {
        DropDownList drop = new DropDownList();
        drop.Items.AddRange(values);

        List<SelectListItem> Textes = new   List<SelectListItem>() ;
        foreach (ListItem item in values)
        {
            SelectListItem selItem = new SelectListItem();
            if (item.Text.Length <= 20) selItem.Text = item.Text;
            else selItem.Text = item.Text.Substring(0, 20) + "...";
            Textes.Add(selItem);
        }

        return drop;

    }
}
公共静态类TruncateDropDownList
{
公共静态DropDownList TruncateDropDown(此HtmlHelper帮助程序,ListItem[]值)
{
DropDownList drop=新的DropDownList();
drop.Items.AddRange(值);
列表文本=新列表();
foreach(值中的列表项)
{
SelectListItem selItem=新建SelectListItem();

如果(item.Text.Length您可以通过利用现有的HtmlHelper for DropDownList来实现这一点。它看起来像这样:

public static class TruncateDropDownList
{
    public static MvcHtmlString TruncateDropDown(this HtmlHelper helper, string id, ListItem[] values, object htmlAttributes)
    {
        List<SelectListItem> Textes = new   List<SelectListItem>() ;
        foreach (ListItem item in values)
        {
            SelectListItem selItem = new SelectListItem();
            if (item.Text.Length <= 20) selItem.Text = item.Text;
            else selItem.Text = item.Text.Substring(0, 20) + "...";
            Textes.Add(selItem);
        }

        return helper.DropDownList(id, values, htmlAttributes);
    }
}
公共静态类TruncateDropDownList
{
公共静态MvcHtmlString TruncateDropDown(此HtmlHelper帮助程序,字符串id,ListItem[]值,对象htmlAttributes)
{
列表文本=新列表();
foreach(值中的列表项)
{
SelectListItem selItem=新建SelectListItem();

如果(item.Text.Length在html属性的扩展方法中没有添加参数:

public static MvcHtmlString TruncateDropDown(this HtmlHelper helper, string name, ListItem[] values, Object htmlAttributes)
{

   List<SelectListItem> Textes = new List<SelectListItem>();
   foreach (ListItem item in values)
   {
       SelectListItem selItem = new SelectListItem();
       if (item.Text.Length <= 20) 
          selItem.Text = item.Text;
       else 
          selItem.Text = item.Text.Substring(0, 20) + "...";
                Textes.Add(selItem);
   }

   return System.Web.Mvc.Html.SelectExtensions.DropDownList(helper,
                                                            name, 
                                                            Textes,
                                                            htmlAttributes);

}
public static MvcHtmlString TruncateDropDown(此HtmlHelper帮助程序、字符串名称、ListItem[]值、对象htmlAttributes)
{
列表文本=新列表();
foreach(值中的列表项)
{
SelectListItem selItem=新建SelectListItem();

如果(item.Text.Length)您的助手需要返回
MvcHtmlString
并且您没有向方法传递属性名-@Downvoter,原因是什么!!变量
表达式
也缺少变量
属性:)