gpt4 book ai didi

asp.net-mvc-4 - Html.Partial 不呈现局部 View

转载 作者:行者123 更新时间:2023-12-03 21:32:11 25 4
gpt4 key购买 nike

我在 View 中有以下代码:

@if (SiteSession.SubPageHelper.DisplayType == DisplayType.List)
{
Html.Partial("_SubLandingPage_List");
}
else
{
Html.Partial("_SubLandingPage_Grid");
}

在部分中,我只有一个像这样的 foreach 循环:
@foreach (Product product in SiteSession.SubPageHelper.PagedProducts)
{
some html code here
}

哪里 PagedProducts是通过做 .Take() 得到的在缓存的产品列表中

现在上面的代码不显示我的分页产品,但如果我更改部分以包含 at 符号,请删除分号:
@Html.Partial("_SubLandingPage_Grid")

它将正确显示产品。谁能告诉我这两个版本之间有什么区别,因为我花了很长时间才弄清楚为什么产品没有显示

最佳答案

如果你不把 告诉我们正在开始编写 c# 代码,这实际上是一种 Razor 语法。 @ 它将被视为纯文本,因此您需要输入 @ 在 View 和 html helper 方法中编写 c# 代码之前签名,您不需要在前面放置分号,那么以这种方式编写助手是 Razor 语法。

例如:

@Html.LabelFor(x=>m.SomeProperty) // here @ is telling that we are writing c# statement

当你写:
@if (SiteSession.SubPageHelper.DisplayType == DisplayType.List)
{
Html.Partial("_SubLandingPage_List"); // this is wrong syntax
}
else
{
Html.Partial("_SubLandingPage_Grid");
}

正确的方法是说明这是一个razor html helper 和c# 语句:
@if (SiteSession.SubPageHelper.DisplayType == DisplayType.List)
{
@Html.Partial("_SubLandingPage_List")
}
else
{
@Html.Partial("_SubLandingPage_Grid")
}

你可以看到更多关于 Razor 语法 HERE

还有几个链接可以帮助您理解 Razor :

http://www.asp.net/web-pages/tutorials/basics/2-introduction-to-asp-net-web-programming-using-the-razor-syntax

http://weblogs.asp.net/scottgu/asp-net-mvc-3-razor-s-and-lt-text-gt-syntax

http://weblogs.asp.net/scottgu/introducing-razor

更新:

另一种方法是使用 RenderPartial ,它可以在 if 语句中工作,而无需放置 @ 标志:
@if (SiteSession.SubPageHelper.DisplayType == DisplayType.List)
{
Html.RenderPartial("_SubLandingPage_List");
}
else
{
Html.RenderPartial("_SubLandingPage_Grid");
}

用于理解 Html.Partial之间的区别和 Html.RenderPartial ,请访问这些链接:

Html.Partial vs Html.RenderPartial & Html.Action vs Html.RenderAction

http://dotnethelpers.wordpress.com/2013/06/18/difference-between-html-renderpartial-vs-html-partial-and-html-renderaction-vs-html-action-in-mvc/

http://www.em64t.net/2010/12/razor-html-renderpartial-vs-html-partial-html-renderaction-vs-html-action-what-one-should-use/

关于asp.net-mvc-4 - Html.Partial 不呈现局部 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24448245/

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