gpt4 book ai didi

asp.net-mvc - ASP.NET MVC - 母版页 View 和呈现部分 - 混淆

转载 作者:行者123 更新时间:2023-12-04 17:42:27 26 4
gpt4 key购买 nike

我对在最新版本的 ASP.NET MVC 框架中尝试将类别列表带入 MasterPageView 上的导航栏感到有些困惑。
到目前为止,我对 Partials 的经验为 0(这增加了困惑)。

我应该使用 RenderPartial 的这个变体吗?

HtmlHelper.RenderPartial(string partialViewName, object model)

我找不到这种方法的任何好的例子。按照惯例,没有与 MasterPageView 关联的模型,对吗?那么从 MasterPageView 将数据插入或拉入“部分”的正确方法是什么?

假设这种方法绝对走错了路:
    <div id="navigation">
<%
CategoryRepository cr = new CategoryRepository();
IList<Category> lst = cr.GetCategories();
Html.RenderPartial("NavBar", lst);
%>
</div>

最佳答案

您不希望您的母版页有 View 数据吗?您可以通过拥有所有其他 View 数据类继承自的基本 View 数据类来解决它...

BaseViewData.cs - 这是一个 View 数据类,所有其他 View 数据类都将从中继承

public class BaseViewData
{
public string Title { get; set; }
public string MetaKeywords { get; set; }
public string MetaDescription { get; set; }
IList<Category> NavCategoryList { get; set; }
}

现在在您的 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) %>

这可能会显着影响您的应用程序架构,但这不一定是一件坏事。

HTH,
查尔斯

关于asp.net-mvc - ASP.NET MVC - 母版页 View 和呈现部分 - 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/636223/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com