MVC Url没有正确路径

时间:2013-09-27 11:22:39

标签: asp.net-mvc asp.net-mvc-4 asp.net-mvc-routing url-routing

我有一个链接

<a class="k-link" href="/UserView/EditByName?UserName=MVCTest6">Profile</a>

点击链接时,会转到此

URL: http://localhost:3256/MVCTest6/Create

当我以管理员用户身份登录时有效。 (该文件夹在web.config中没有安全性,将其分开)。此链接实际上适用于页面的另一部分。

用户也已存在且已经过身份验证。

请解释一下吗?

2 个答案:

答案 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"); }
        }