【发布时间】:2016-05-20 03:46:44
【问题描述】:
我在 asp.net mvc 和 URL 中导航时遇到了困难。
当您在 Facebook 访问您的个人资料时,网址是 facebook.com/yourusername。在您的个人资料中有一个包含以下链接的菜单:时间轴、关于、朋友等。
当您单击其中一个链接时,例如Photos,URL 将更改为 facebook.com/yourusername/Photos,并呈现照片。上面描述的菜单仍然存在,个人资料图片和封面图片也是如此。它就像一个局部视图已经渲染了查看照片。
我想在我的项目中实现这个效果,但是不知道怎么做。我试过用Partial view 来做,但问题是在渲染部分视图时URL没有改变。
我应该如何构建它?
我的属于Home-controller 的Index.cshtml 如下所示:
div class="centering col-lg-7 logged_in_mainboxes" style="padding: 0; position: relative">
<div class="col-lg-12 coverPicture" style="background-image: url('/Content/Images/@Model.CoverPicture');">
<div id="image-cropper">
<div class="cropit-preview"></div>
<h3 class="coverPicTextStyle">
@Model.Name
</h3>
<button type="submit" id="uploadCoverpicture" class="btn_style_2 btn" style="position: absolute; bottom: 10px; right: 10px;">Upload</button>
<button type="submit" id="crop" class="btn_style_2 btn" style="position: absolute; bottom: 50px; right: 10px; display: none;">Done</button>
<input type="file" class="cropit-image-input" id="coverUpl" style="display: none;" />
</div>
<div class='progress' id="progress_div">
<div class='bar' id='bar1'></div>
<div class='percent' id='percent1'></div>
</div>
<input type="hidden" id="progress_width" value="0">
</div>
<div class="col-lg-12 pull-left">
<div class="user_menu">
<ul>
<li>@Html.ActionLink("Wall","Wall","Home")</li>
<li>@Html.ActionLink("Music", "Music", "Home")</li>
<li>@Html.ActionLink("Photos", "Photos", "Home")</li>
<li>@Html.ActionLink("Videos", "Videos", "Home")></li>
<li>@Html.ActionLink("About", "About", "Home")</li>
</ul>
</div>
</div>
<div class="col-lg-7 pull-left" style="margin-top: 15px;">
</div>
<div class="col-lg-3 pull-right" style="border-left: 1px solid #ddd; margin-top: 15px; ">
asdasd
</div>
</div>
【问题讨论】:
-
你可以通过定义路由来做到这一点——比如
url: {username}/Photos和defaults { controller = "Photos", action = "Index" }并重定向到那个方法,传递用户名(菜单等只是布局的一部分) -
@StephenMuecke:但我不希望用户特定的菜单成为布局文件的一部分。
-
如果它是一个用户特定的菜单,那么你通过使用
@{ Html.RenderAction(...); }在布局中生成它,将用户名(或ID)传递给基于用户生成菜单项的方法跨度> -
@StephenMuecke:对不起,我不明白你的解决方案。我在我的 Index.html 中拥有属于 Home-controller 的配置文件的所有布局。检查我更新的问题。
-
@StephenMuecke:是的,我有?
标签: javascript c# asp.net asp.net-mvc razor