0

我有一個鏈接去MVC網址無法正常尋路

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

當鏈接被點擊它進入這個

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

,當我登錄作爲管理員,其工作原理用戶。 (該文件夾在web.config中沒有安全設置)。該鏈接實際上在頁面的另一部分上起作用。

用戶也已存在並且已通過身份驗證。

請問這個可以解釋一下嗎?

+0

您可以發佈控制器的代碼部分? – AthibaN

+0

@Athiban ...感謝,讓我看看控制器忘了我有代碼重定向,如果用戶配置文件尚未創建。 – ChampChris

回答

-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"); } 
     } 
+1

用這部分編輯問題,而不是發帖作爲解答請輸入 – AthibaN

+0

抱歉...不要再做 – ChampChris

0

我明白了!這就是問題的所在,

return RedirectToAction("Create", User.Identity.Name); 

您使用此重載RedirectToAction("Action", "Contoller");

所以後面部分被作爲控制器。嘗試其他過載符合您的要求,如果您試圖將值傳遞給另一個動作,它必須是

return RedirectToAction("Create", new {UserName = User.Identity.Name});