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 回答