0

我正在自学asp .net mvc3。我想创建一个用户帐户页面,其中包含 3 个选项卡 - 例如 YourAddress、YourPhotos 和 YourProfile。

第三个选项卡(YourProfile)还有 2 个子选项卡... ChangeDetails 和 DeactiaveAccount。

它们都是动态页面,因此我想将它们保留为单独的页面。

基本上,网址是:

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

(根据要求,我已将通用 tab1、tab2 等更改为真实场景中的内容)

我打算做这样的事情:

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 Helper 方法来呈现操作方法的路径。

<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 回答