MVC HTML Helper扩展 [英] MVC html helper extension
问题描述
我正在尝试重复使用在此处找到的html帮助程序
public static class HtmlHelperExtension
{
public static string DatePickerDropDowns(this HtmlHelper html, string dayName, string monthName, string yearName)
{
var daysList = new TagBuilder("select");
var monthsList = new TagBuilder("select");
var yearsList = new TagBuilder("select");
daysList.Attributes.Add("name", dayName);
monthsList.Attributes.Add("name", monthName);
yearsList.Attributes.Add("name", yearName);
StringBuilder days = new StringBuilder();
StringBuilder months = new StringBuilder();
StringBuilder years = new StringBuilder();
int beginYear = DateTime.UtcNow.Year - 100;
int endYear = DateTime.UtcNow.Year;
for (int i = 1; i <= 31; i++)
days.AppendFormat("<option value='{0}'>{0}</option>", i);
for (int i = 1; i <= 12; i++)
months.AppendFormat("<option value='{0}'>{0}</option>", i);
for (int i = beginYear; i <= endYear; i++)
years.AppendFormat("<option value='{0}'>{0}</option>", i);
daysList.InnerHtml = days.ToString();
monthsList.InnerHtml = months.ToString();
yearsList.InnerHtml = years.ToString();
return string.Concat(daysList.ToString(), monthsList.ToString(), yearsList.ToString());
}
}
但是如何在我的mvc剃须刀页面上使用它.我尝试过
but how do I use it on my mvc razor page .I tried by
@ Html.DatePickerDropDowns("dayName","monthName","yearName")
@Html.DatePickerDropDowns("dayName","monthName","yearName")
但是当我加载我的剃须刀页面时,它没有用,它只是显示html语法,我的意思是它没有显示实际的下拉列表.我在这里做错了什么.如何解决这个问题,并显示三个下拉菜单,分别为1天,1月和1年?
but when I loaded my razor page ,it did n't worked ,it's just showing html syntax,I mean it's not showing up the actual dropdown lists. What I am I doing wrong here .how can I fix this and show three dropdowns 1 for day, 1 for month and 1 for years ?
推荐答案
您必须更改Helper的定义返回.确保使用 MvcHtmlString
并返回 return MvcHtmlString.Create(String.Concat(daysList.ToString(),monthsList.ToString(),yearsList.ToString()));
You have to change the defined return of your Helper.
Make sure you use MvcHtmlString
and the return return MvcHtmlString.Create(String.Concat(daysList.ToString(), monthsList.ToString(), yearsList.ToString()));
完整代码:
public static MvcHtmlString DatePickerDropDowns(this HtmlHelper html, string dayName, string monthName, string yearName)
{
var daysList = new TagBuilder("select");
var monthsList = new TagBuilder("select");
var yearsList = new TagBuilder("select");
daysList.Attributes.Add("name", dayName);
monthsList.Attributes.Add("name", monthName);
yearsList.Attributes.Add("name", yearName);
StringBuilder days = new StringBuilder();
StringBuilder months = new StringBuilder();
StringBuilder years = new StringBuilder();
int beginYear = DateTime.UtcNow.Year - 100;
int endYear = DateTime.UtcNow.Year;
for (int i = 1; i <= 31; i++)
days.AppendFormat("<option value='{0}'>{0}</option>", i);
for (int i = 1; i <= 12; i++)
months.AppendFormat("<option value='{0}'>{0}</option>", i);
for (int i = beginYear; i <= endYear; i++)
years.AppendFormat("<option value='{0}'>{0}</option>", i);
daysList.InnerHtml = days.ToString();
monthsList.InnerHtml = months.ToString();
yearsList.InnerHtml = years.ToString();
return MvcHtmlString.Create(String.Concat(daysList.ToString(), monthsList.ToString(), yearsList.ToString()));
}
这篇关于MVC HTML Helper扩展的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!