Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC html帮助程序扩展_C#_Asp.net Mvc - Fatal编程技术网

C# MVC html帮助程序扩展

C# MVC html帮助程序扩展,c#,asp.net-mvc,C#,Asp.net Mvc,我正在尝试重用找到的html帮助程序 公共静态类HtmlHelperExtension { 公共静态字符串DatePickerDropDowns(此HtmlHelper html、字符串dayName、字符串monthName、字符串名称) { var daysList=新标记生成器(“选择”); var monthsList=新标记生成器(“选择”); var yearsList=新标记生成器(“选择”); daysList.Attributes.Add(“name”,dayName); mo

我正在尝试重用找到的html帮助程序

公共静态类HtmlHelperExtension
{
公共静态字符串DatePickerDropDowns(此HtmlHelper html、字符串dayName、字符串monthName、字符串名称)
{
var daysList=新标记生成器(“选择”);
var monthsList=新标记生成器(“选择”);
var yearsList=新标记生成器(“选择”);
daysList.Attributes.Add(“name”,dayName);
monthsList.Attributes.Add(“name”,monthName);
yearsList.Attributes.Add(“名称”,名称);
StringBuilder天数=新建StringBuilder();
StringBuilder月数=新建StringBuilder();
StringBuilder年份=新StringBuilder();
int beginYear=DateTime.UtcNow.Year-100;
int endYear=DateTime.UtcNow.Year;

对于(int i=1;i而不是返回
string
return
MvcHtmlString

public static MvcHtmlString DatePickerDropDowns(this HtmlHelper html, string dayName, string monthName, string yearName)

您必须更改助手的定义返回。 确保使用
MvcHtmlString
和返回值
return MvcHtmlString.Create(String.Concat(daysList.ToString()、monthlist.ToString()、yearsList.ToString());

完整代码:

public static MvcHtmlString DatePickerDropDowns(此HtmlHelper html、string dayName、string monthName、string depename)
{
var daysList=新标记生成器(“选择”);
var monthsList=新标记生成器(“选择”);
var yearsList=新标记生成器(“选择”);
daysList.Attributes.Add(“name”,dayName);
monthsList.Attributes.Add(“name”,monthName);
yearsList.Attributes.Add(“名称”,名称);
StringBuilder天数=新建StringBuilder();
StringBuilder月数=新建StringBuilder();
StringBuilder年份=新StringBuilder();
int beginYear=DateTime.UtcNow.Year-100;
int endYear=DateTime.UtcNow.Year;

对于(int i=1;i)如果您的意思是扩展方法未加载,则应该为扩展方法类所在的命名空间添加using语句显示输出html
public static MvcHtmlString DatePickerDropDowns(this HtmlHelper html, string dayName, string monthName, string yearName)
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()));
}