10

I have included a model and created a view file as well as a controller to direct all of them

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; }
}

On top of the view file

I also have @model CreateNewUserModel

and here is the compilation error I have got

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 

1 Answer 1

17

You just need to either fully specify the name of the model type or import the namespace for the model.

e.g.

@model MyNamespace.CreateNewUserModel

or

@using MyNamespace
@model CreateNewUserModel

Obviously, replace "MyNamespace" in the examples above with the namespace in which you defined your model class.

Not the answer you're looking for? Browse other questions tagged or ask your own question.