8

モデルを含め、ビューファイルとそれらすべてを指示するコントローラーを作成しました

public class CreateNewUserModel
{
    [Required]
    [Display(Name = "User name")]
    public string UserName { get; set; }

    [Required(ErrorMessage = "Email required")]
    [EmailAddress(ErrorMessage = "Not a valid email")]
    public string UserEmail { get; set; }

    [Required]
    [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    public string Password { get; set; }

    [DataType(DataType.Password)]
    [Display(Name = "Confirm password")]
    [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
    public string ConfirmPassword { get; set; }

    [Required]
    [Display(Name = "Role")]
    public string UserRole { get; set; }
    public IEnumerable<System.Web.Mvc.SelectListItem> UserRoles { get; set; }
}

ビューファイルの上に

私も持っています@model CreateNewUserModel

これが私が持っているコンパイルエラーです

Compilation Error 
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: CS0246: The type or namespace name 'CreateNewUserModel' could not be found (are you missing a using directive or an assembly reference?)

 Source Error:   
Line 32:     
Line 33:     
Line 34:     public class _Page_Views_Account_CreateNewUser_cshtml : System.Web.Mvc.WebViewPage<CreateNewUserModel> {
Line 35:         
Line 36: #line hidden 
4

1 に答える 1

14

モデルタイプの名前を完全に指定するか、モデルの名前空間をインポートする必要があります。

例えば

@model MyNamespace.CreateNewUserModel

また

@using MyNamespace
@model CreateNewUserModel

明らかに、上記の例の「MyNamespace」を、モデルクラスを定義した名前空間に置き換えてください。

于 2013-02-03T19:23:46.553 に答える