0

だからここに私がしたいことがあります。/Admin/Vendors/Index にページがあります。ユーザーが特定の役割を持っていて、このページにアクセスした場合、特定のデータのみを表示する別のビューにリダイレクトされるようにします。

ここに私が持っているものがあります:

public ActionResult Index()
{
    if (User.IsInRole("Special User"))
    {
        SpecialIndex();
    }

    return View();
}


public ActionResult SpecialIndex()
{
    var viewModel = GetSpecialData();

    return View(viewModel);
}

そのため、ユーザーがロールにいてSpecialIndexメソッドを呼び出すと、メソッドが呼び出されてユーザーがSpecialIndexビューに送られると思いました。

SpecialIndexメソッドを呼び出しますが、 を呼び出すと、メソッドreturn View(viewModel)に戻るだけIndexで、ユーザーにはIndexではなくビューが表示されますSpecialIndex

どうすれば修正できますか?

4

2 に答える 2

3

ビュー名を取得するコンストラクターを使用する必要がView()あります。この場合、返すビューを具体的に指定するか、メソッドを使用してアクションRedirectToActionにリダイレクトできます。ドキュメントSpecialIndexを見る

public ActionResult Index()
{
    if (User.IsInRole("Special User"))
    {
        return this.RedirectToAction("SpecialIndex");
    }
    return View();
}

于 2013-01-21T02:59:52.043 に答える
1

User.IsInRole("Special User")それがあなたの問題を解決することを確認してください。いずれにせよ、あなたはそのビューを返しています。

于 2013-01-22T19:07:41.597 に答える