我有一个链接
<a class="k-link" href="/UserView/EditByName?UserName=MVCTest6">Profile</a>
点击链接时,会转到此
URL: http://localhost:3256/MVCTest6/Create
当我以管理员用户身份登录时有效。 (该文件夹在web.config中没有安全性,将其分开)。此链接实际上适用于页面的另一部分。
用户也已存在且已经过身份验证。
请解释一下吗?
答案 0 :(得分:0)
我懂了!这就是问题所在,
return RedirectToAction("Create", User.Identity.Name);
您正在使用此重载RedirectToAction("Action", "Contoller");
所以后面的部分作为控制器。如果您尝试将值传递给另一个操作,请尝试其他符合您要求的重载,这必须类似于
return RedirectToAction("Create", new {UserName = User.Identity.Name});
答案 1 :(得分:-1)
我忘了如果没有创建用户个人资料,我就有了重定向的逻辑。这导致了这个问题。我的测试用户没有设置配置文件,因此它重定向到创建页面
public ActionResult EditByName(string userName)//EditByName
{
if (User.Identity.IsAuthenticated)
{
UserModel usermodel = repository.Get(User.Identity.Name);// db.UserModels.Find(id);
if (usermodel == null)
{
return RedirectToAction("Create", User.Identity.Name);
}
return View(usermodel);
}
else { return RedirectToAction("Login", controllerName: "AccountView"); }
}