从另一个页面获取login的值,以在asp.net mvc中构建一个动态连接字符串



我有LoginViewModel

        public class LoginViewModel
{
    [Required]
    [Display(Name = "Email")]
    [EmailAddress]
    public string Email { get; set; }
    [Required]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    public string Password { get; set; }
    [Display(Name = "Remember me?")]
    public bool RememberMe { get; set; }
    [Required]
    [Display(Name = "Client ID")]
    public string ClientID { get; set; }
}

当用户登录时,他输入他将使用的数据库的名称,因此使用客户端ID,我将构建一个连接字符串,用于实例化我的dbcontext EF。如何从另一个页面获取这些客户端ID的值,以便在实例化SystemContext连接字符串时检索它

    public partial class SystemContext : DbContext
{
    public SystemContext()
        : base("name=SystemContext")
    {
    }

你说得对,

我使用了会话,但在另一个控制器中变为空。应该是

    var clientId = (string) HttpContext.Session["ClientID"];

据我所知,您正试图将数据从页面A传输到页面B。

有几种方法可以传输数据:

  • this.ViewBag["client"]="xxx";//只在同一个动作内传输,如果重定向到另一个动作,数据就会丢失
  • this.TempData["client"]="xxx";//我建议这个
  • this.Session["client"]="xxx";//会话数据

PS:您应该在控制器代码中设置它;u可以在控制器代码或页面呈现中使用它。

希望这能帮助你。:)

最新更新