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,原因是什么!!变量表达式
也缺少变量属性:)