我试图将一个类别列表放在ASP.NET MVC框架的最新版本中的MasterPageView上的导航栏中,我有点困惑.到目前为止,我对Partials有0次经验(这增加了混乱).
我应该使用RenderPartial的这个变体吗?
HtmlHelper.RenderPartial(string partialViewName, object model)
Run Code Online (Sandbox Code Playgroud)
我无法找到这种方法的任何好例子.按照惯例,没有与MasterPageView关联的模型吗?那么从MasterPageView推送或拉取数据到"部分"的正确方法是什么?
假设这种方法绝对走错了路:
<div id="navigation">
<%
CategoryRepository cr = new CategoryRepository();
IList<Category> lst = cr.GetCategories();
Html.RenderPartial("NavBar", lst);
%>
</div>
Run Code Online (Sandbox Code Playgroud)
你不希望你的主页有viewdata吗?您可以通过拥有所有其他viewdata类继承的基本视图数据类来解决它...
BaseViewData.cs - 这是一个所有其他viewdata类将继承的viewdata类
public class BaseViewData
{
public string Title { get; set; }
public string MetaKeywords { get; set; }
public string MetaDescription { get; set; }
IList<Category> NavCategoryList { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在在您的Site.Master页面中
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<BaseViewData>" %>
<title><%=ViewData.Model.Title %></title>
<meta name="keywords" content="<%=ViewData.Model.MetaKeywords %>" />
<meta name="description" content="<%=ViewData.Model.MetaDescription %>" />
<%= Html.RenderPartial("NavBar", ViewData.Model.NavCategoryList) %>
Run Code Online (Sandbox Code Playgroud)
这可能会对您的应用程序架构产生重大影响,但这不一定是件坏事.
HTHs,查尔斯
| 归档时间: |
|
| 查看次数: |
411 次 |
| 最近记录: |