MVC4 Razor 在单个视图上访问多个模型 类 时出现各种元素错误

MVC4 Razor On Accessing Multiple Model Classes on Single View Giving Error On Various Elements

我有一个 Shared Layout 用于登录。对于登录,我有一个 LoginViewModel 用于 usernamepasswordreturnurlisRemember。我有 userSaltValue 的另一个模型。我想在页面加载时在隐藏字段中的客户端获取用户盐值,我目前正在服务器端单击按钮。在使用这两种模型时,它给我上述参数的错误。我应该怎么做?

共享布局:

<!DOCTYPE html>
<html lang="en">
<head></head>

<body class="bg-gradient-primary">
  @RenderBody()   
</body>
</html>

Login.cshtml:

@model ROMvcApplication.Models.LoginVM
@model ROMvcApplication.Models.UserSalt

LoginVM.cs

namespace ROMvcApplication.Models
{
    public class LoginVM
    {
        public string Username { get; set; }

        public string Password { get; set; }

        public string ReturnURL { get; set; }

        public bool isRemember { get; set; }

    }
}

UserSalt.cs:

namespace ROMvcApplication.Models
{
    public class UserSalt
    {
        public string saltvalue { get; set; }
    }
}

同一型号不能有两种不同类型:

@model ROMvcApplication.Models.LoginVM
@model ROMvcApplication.Models.UserSalt

毕竟,当您在该视图中引用 Model 变量时,您希望看到哪个?

可以但是将您的字段添加到您已经在使用的模型中:

public class LoginVM
{
    public string Username { get; set; }

    public string Password { get; set; }

    public string ReturnURL { get; set; }

    public bool isRemember { get; set; }

    public string saltvalue { get; set; }
}

,如果您出于任何原因不想更改该模型,您可以为此视图创建一个复合模型:

public class LoginWithSaltVM
{
    public LoginVM Login { get; set; }

    public string saltvalue { get; set; }
}

基本上,您可以完全自由地创建和修改 类 以满足您的需要。