0

へのリンクがあります

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

リンクをクリックするとこちらに飛びます

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

これは、管理者ユーザーとしてログインしているときに機能します。(フォルダには、それを区別する web.config のセキュリティがありません)。このリンクは、実際にはページの別の部分で機能します。

ユーザーも既に存在し、認証されています。

これについて説明してもらえますか?

4

2 に答える 2

0

わかった !ここが問題なのですが、

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

あなたはこのオーバーロードを使用していますRedirectToAction("Action", "Contoller");

したがって、後半の部分はコントローラーとして使用されます。次のような別のアクションに値を渡そうとしている場合は、要件に一致する他のオーバーロードを試してください。

 return RedirectToAction("Create", new {UserName = User.Identity.Name});
于 2013-09-27T11:37:50.573 に答える
-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"); }
        }
于 2013-09-27T11:32:20.300 に答える