Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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# 返回类型';System.String';不支持。参数名称:表达式MVC枚举_C#_Asp.net Mvc 4_Enums - Fatal编程技术网

C# 返回类型';System.String';不支持。参数名称:表达式MVC枚举

C# 返回类型';System.String';不支持。参数名称:表达式MVC枚举,c#,asp.net-mvc-4,enums,C#,Asp.net Mvc 4,Enums,我正在尝试从Asp.net MVC中的枚举创建下拉列表。用下面的代码,我得到了上面的错误 以下是代码: <div class="col-md-10"> @Html.EnumDropDownListFor(model => model.SenderType, null, htmlAttributes: new { @class = "form-control" }) @Html.ValidationMessageFor(model

我正在尝试从Asp.net MVC中的枚举创建下拉列表。用下面的代码,我得到了上面的错误

以下是代码:

<div class="col-md-10">
            @Html.EnumDropDownListFor(model => model.SenderType, null, htmlAttributes: new { @class = "form-control" })
            @Html.ValidationMessageFor(model => model.SenderType, "", new { @class = "text-danger" })
        </div>
型号:

public enum SenderType
{
    Transactional,
    Promotional
}
public class SenderModel
{
    [Key]
    public int SenderId { get; set; }

    [Display(Name = "Sender Name")]
    public string SenderName { get; set; }
    [Display(Name = "Sender Type")]
    public string SenderType { get; set; }
    [Display(Name = "Sender Purpose")]
    public string SenderPurpose { get; set;}

    public int UserId { get; set; }
    public virtual ApplicationUser User { get; set; }
}

我已经发布了我的代码。感谢您的帮助

,因为您的模型中有
SenderType
属性作为字符串类型,该属性已在razor中使用,
EnumDropDownList for
不支持该属性
EnumDropDownListFor
expect enum type属性,因此您的
SenderType
属性应为
SenderType
enum类型。因此,您的模型应该是:

public class SenderModel
{
    [Key]
    public int SenderId { get; set; }

    [Display(Name = "Sender Name")]
    public string SenderName { get; set; }

    [Display(Name = "Sender Type")]
    public SenderType SenderType { get; set; } // SenderType should be of type enum SenderType
    [Display(Name = "Sender Purpose")]
    public string SenderPurpose { get; set;}

    public int UserId { get; set; }
    public virtual ApplicationUser User { get; set; }
}

什么是model.SenderType?您可以在模型中将“publicstringsenderType{get;set;}”视为EnumDropDownListFor不支持的字符串类型
public class SenderModel
{
    [Key]
    public int SenderId { get; set; }

    [Display(Name = "Sender Name")]
    public string SenderName { get; set; }

    [Display(Name = "Sender Type")]
    public SenderType SenderType { get; set; } // SenderType should be of type enum SenderType
    [Display(Name = "Sender Purpose")]
    public string SenderPurpose { get; set;}

    public int UserId { get; set; }
    public virtual ApplicationUser User { get; set; }
}