MVC4 Razor在单一视图上访问多个模型类,给各个元素带来了错误

我正在登录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; }
    }
}
qianjun8u8 回答:MVC4 Razor在单一视图上访问多个模型类,给各个元素带来了错误

同一模型不能有两种不同的类型:

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

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

本文链接:https://www.f2er.com/3167099.html

大家都在问