【发布时间】:2014-02-27 12:33:18
【问题描述】:
我有一个包含塔式菜单项的索引视图页面。单击任何菜单项时,我想加载部分视图。
我习惯于使用网络用户控件,但这似乎有些不同。
在下面的代码中,ActionResult 索引包含菜单项的塔。
加载索引视图后,它看起来像下面的快照。
public class EnterpriseManagerController : AlumCloudMvcControllerBase
{
public class PhotoViewModel
{
public int Width { get; set; }
public int Height { get; set; }
public short MaxPhotoBytes { get; set; }
public string GenericPhoto { get; set; }
public bool IsLogo { get; set; }
}
public ActionResult Index()
{
return View();
}
public PartialViewResult Avatar()
{
var x = new PhotoViewModel { Width = _avatarwidth, Height = _avatarheight, MaxPhotoBytes = _maxavatarbytes, GenericPhoto = _genericLogo };
return PartialView(x);
}
}
当单击菜单项 Avatar 时,我想在菜单项塔的右侧加载 _AvatarPartial。当调用 EnterpriseManagerController Avatar PartialViewResult 时,我想将 PhotoViewModel 传递给 PartialView(x)。
我的 Index.cshtml 的代码如下所示:
<div id="controlPanWrap">
@Html.Partial("_VerticalMenuPartial")
//I NEED TO LOAD THE PARTIAL VIEWS RIGHT HERE
</div>
这是我的头像部分视图的样子:
_AvatarPartial.cshtml
如何加载 Avatar 局部视图以使 _AvatarPartial.cshtml 的内容正好位于以下位置:
<div id="controlPanWrap">
@Html.Partial("_VerticalMenuPartial")
_AvatarPartial.cshtml
</div>
当单击其他一些菜单项时,是否将 _SomeOtherMenuItemPartial.cshtml 放入该空间并删除 _AvatarPartial.cshtml?
如果这可以用 JavaScript 完成而不需要重新加载整个页面,那就太好了。
【问题讨论】:
-
您可以尝试使用 ajax 来调用控制器中返回 PartialView 的方法。然后您可以将该部分视图的内容呈现到您的内容 div 中...或者您可以从我上面的那个人那里看到答案:)
-
唯一阻碍我的是每个视图都有自己的脚本。
-
我给了你一个帮助。我应该提到我有一些视图的小脚本和样式。到处都有一些是很自然的。我已经发布了如何检索视图和处理脚本和样式。
标签: c# asp.net-mvc-4 razor view partial-views