0

私は自分自身にasp .net mvc3を教えています。YourAddress、YourPhotos、YourProfile の 3 つのタブがあるユーザー アカウント ページを作成したいと考えています。

3 番目のタブ (YourProfile) には、さらに 2 つのサブタブがあります... ChangeDetails と DeactiaveAccount。

それらはすべて動的なページであるため、個別のページとして保持したいと考えています。

基本的に、URL は次のようになります。

localhost/MyHome/YourAddress
localhost/MyHome/YourPhotos
localhost/MyHome/YourProfile/ChangePassword
localhost/MyHome/YourProfile/DeactivateAccount

(要求に応じて、一般的なタブ1、タブ2などを実際のシナリオに変更しました)

私はこのようなことを計画しています:

public class MyHomeController : Controller
    {
        //
        // GET: /MyHome/Tab1

        public ActionResult Tab1()
        {
            return View();
        }

        //
        // GET: /MyHome/Tab2

        public ActionResult Tab2()
        {
            return View();
        }

        //
        // GET: /MyHome/Tab3

        public ActionResult Tab3()
        {
            return View();
        }
    }

YourProfile のサブタブを処理するにはどうすればよいですか? コントローラー内でコントローラーを呼び出すにはどうすればよいですか?

これを達成するための最良の方法は何ですか。

ありがとう

4

1 に答える 1

1

コントローラーのタブ項目ごとに個別のアクション メソッドを用意します。

public class MyHomeController : Controller
{
  public ActionResult YourAddress()
  {
     return View();
  }
  public ActionResult YourPhotos()
  {
     return View();
  }
  public ActionResult YouProfile()
  {
     return VieW();
  }
  public ActionResult ChangePassword()
  {
     return View();
  }
  public ActionResult DeActivate()
  {
     return View();
  }
}

サブタブのコンテンツについては、global.asax でそのルートを定義します。

routes.MapRoute("ChangePass","YourProfile/ChangePassword", 
                      new { controller="MyHome", action="ChangePassword" });
routes.MapRoute("DeActivate","YourProfile/DeActivate", 
                      new { controller="MyHome", action="DeActivate" });
routes.MapRoute(
           "Default", 
           "{controller}/{action}/{id}", 
           new { controller = "Home", action = "Index", id = UrlParameter.Optional });

アクション メソッドへのパスをレンダリングするには、常にUrl.ActionHtml ヘルパー メソッドを使用します。

<div id="tabs"> 
    <ul> 
        <li><a href="@Url.Action("YourAddress","MyHome")">Address</a></li>
        <li><a href="@Url.Action("YourPhotos","MyHome")">Photos</a></li>
    </ul>
</div>
于 2012-08-02T19:28:04.543 に答える