未找到视图 'Index' 或其主视图,这是因为用户凭据无效吗
The view 'Index' or its master was not found , is this because invalid user credentials
我发现了很多与我的问题相同的问题,但没有一个解决了我的问题
我将简要解释一下,我已经创建了 MVC 5 网络应用程序。在那个应用程序中
一旦我调试了我的应用程序,它就会指向 ~/Account/Login
页面
然后一旦我输入有效的用户名密码,它就可以定向到 ~/Home/Index
页面
此应用程序以前运行良好,但后来我将其更改为本地数据库
这是之前为服务器数据库定义的连接字符串的方式
<connectionStrings>
<add name="dbconnection" connectionString="Data Source=192.158.1.205;Initial Catalog=DBName;Persist Security Info=True;User ID=**;Password=****" providerName="System.Data.SqlClient" />
<add name="DefaultConnection" connectionString="Data Source=192.158.1.205;Initial Catalog=DBName;Persist Security Info=true;User ID=**;Password=****" providerName="System.Data.SqlClient" />
<add name="ProjectEntities" connectionString="metadata=res://*/Models.albaraka_model.csdl|res://*/Models.albaraka_model.ssdl|res://*/Models.DBName_model.msl;provider=System.Data.SqlClient;provider connection string="data source=192.158.1.205;initial catalog=***;persist security info=True;user id=***;password=*****;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
这就是现在为本地数据库配置连接字符串的方式
<connectionStrings>
<add name="dbconnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=DBName;Integrated Security=True;MultipleActiveResultSets=True;" providerName="System.Data.SqlClient" />
<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=DBName;Integrated Security=True;MultipleActiveResultSets=True;" providerName="System.Data.SqlClient" />
<add name="ProjectEntities" connectionString="metadata=res://*/Models.DBName_model.csdl|res://*/Models.DBName_model.ssdl|res://*/Models.DBName_model.msl;provider=System.Data.SqlClient;provider connection string="data source=.;initial catalog=ALBARAKA;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
这是因为定义的连接字符串无效吗?或者这是因为无效的用户名密码(目前未在客户端或服务器端处理)
这是我的post登录方法
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (!ModelState.IsValid)
{
return View(model);
}
var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout: false);
switch (result)
{
case SignInStatus.Success:
return RedirectToLocal(returnUrl);
case SignInStatus.LockedOut:
return View("Lockout");
case SignInStatus.RequiresVerification:
return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
case SignInStatus.Failure:
default:
ModelState.AddModelError("", "Invalid login attempt.");
return View("Index", "Home", model);
}
}
非常感谢您的帮助
改变这个
return View("Index", "Home", model);
到视图完整路径和模型
return View("~/Views/Index.cshtml", model); //note this is an example so replace the path with yours
或
return RedirectToAction("Index","Home");
或
return RedirectToAction("Index","Home", model);
如果您需要进一步说明,请参阅此 link https://msdn.microsoft.com/en-us/library/system.web.mvc.controller.redirecttoaction(v=vs.118).aspx
我发现了很多与我的问题相同的问题,但没有一个解决了我的问题
我将简要解释一下,我已经创建了 MVC 5 网络应用程序。在那个应用程序中
一旦我调试了我的应用程序,它就会指向 ~/Account/Login
页面
然后一旦我输入有效的用户名密码,它就可以定向到 ~/Home/Index
页面
此应用程序以前运行良好,但后来我将其更改为本地数据库
这是之前为服务器数据库定义的连接字符串的方式
<connectionStrings>
<add name="dbconnection" connectionString="Data Source=192.158.1.205;Initial Catalog=DBName;Persist Security Info=True;User ID=**;Password=****" providerName="System.Data.SqlClient" />
<add name="DefaultConnection" connectionString="Data Source=192.158.1.205;Initial Catalog=DBName;Persist Security Info=true;User ID=**;Password=****" providerName="System.Data.SqlClient" />
<add name="ProjectEntities" connectionString="metadata=res://*/Models.albaraka_model.csdl|res://*/Models.albaraka_model.ssdl|res://*/Models.DBName_model.msl;provider=System.Data.SqlClient;provider connection string="data source=192.158.1.205;initial catalog=***;persist security info=True;user id=***;password=*****;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
这就是现在为本地数据库配置连接字符串的方式
<connectionStrings>
<add name="dbconnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=DBName;Integrated Security=True;MultipleActiveResultSets=True;" providerName="System.Data.SqlClient" />
<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=DBName;Integrated Security=True;MultipleActiveResultSets=True;" providerName="System.Data.SqlClient" />
<add name="ProjectEntities" connectionString="metadata=res://*/Models.DBName_model.csdl|res://*/Models.DBName_model.ssdl|res://*/Models.DBName_model.msl;provider=System.Data.SqlClient;provider connection string="data source=.;initial catalog=ALBARAKA;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
这是因为定义的连接字符串无效吗?或者这是因为无效的用户名密码(目前未在客户端或服务器端处理)
这是我的post登录方法
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (!ModelState.IsValid)
{
return View(model);
}
var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout: false);
switch (result)
{
case SignInStatus.Success:
return RedirectToLocal(returnUrl);
case SignInStatus.LockedOut:
return View("Lockout");
case SignInStatus.RequiresVerification:
return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
case SignInStatus.Failure:
default:
ModelState.AddModelError("", "Invalid login attempt.");
return View("Index", "Home", model);
}
}
非常感谢您的帮助
改变这个
return View("Index", "Home", model);
到视图完整路径和模型
return View("~/Views/Index.cshtml", model); //note this is an example so replace the path with yours
或
return RedirectToAction("Index","Home");
或
return RedirectToAction("Index","Home", model);
如果您需要进一步说明,请参阅此 link https://msdn.microsoft.com/en-us/library/system.web.mvc.controller.redirecttoaction(v=vs.118).aspx