小编yon*_*age的帖子

在 .net MVC 中渲染列表的子列表

我仍在学习 .net MVC,也许没有正确搜索我需要找到解决方案的内容。

简而言之,我在数据库中有一个表,其结构如下:

ID    Category    Subcategory    FK
Run Code Online (Sandbox Code Playgroud)

所以每个类别可能会出现多次,每个子类别也是如此,这是该类别所独有的。

我想在视图中渲染一个菜单,如下所示:

Category 1
    Subcategory 1a
    Subcategory 1b
    Subcategory 1c
Category 2
    Subcategory 2a
    Subcategory 2b
Run Code Online (Sandbox Code Playgroud)

等等。现在在控制器中我有:

var categories = db.Category
                     .Where(oa => oa.Category != "")
                     .GroupBy(oa => new { oa.Category, oa.Subcategory })
                     .Select(oa => oa.FirstOrDefault());
Run Code Online (Sandbox Code Playgroud)

但是,我不确定如何在视图中实现我想要实现的目标。我知道我必须以某种方式遍历列表,但我不确定如何。我知道它涉及以下内容:

@foreach (var item in Model)
{
    <li>
        <a id="@item.ID" href="#">@item.Category</a>
    </li>
}
Run Code Online (Sandbox Code Playgroud)

但我只希望每个类别出现一次,然后需要所有子类别出现在父类别下。或者也许我需要更改控制器及其发送数据的方式?

c# asp.net-mvc razor

2
推荐指数
1
解决办法
1890
查看次数

SilverStripe - 模板可变投掷错误

我有一个非常基本的功能,我开始.我开始很简单code/Page.php:

public function createGreeting() {
    return 'hi';
}
Run Code Online (Sandbox Code Playgroud)

在我的Page.ss模板中,我有变量:<% $createGreeting %>

然而,这正在扼杀页面.我检查了错误日志,它显示:

PHP message: PHP Warning:  Director::protocolAndHost() lacks sufficient information - HTTP_HOST not set. in /usr/share/nginx/html/lungmap/framework/control/Director.php on line 488" while reading upstream, client: 31.210.102.114, server: 52.90.93.59, request: "GET / HTTP/1.0", upstream: "fastcgi://unix:/var/run/php/php5.6-fpm.sock:" 2017/06/12 12:34:50 [error] 1730#0: *6682 FastCGI sent in stderr: "PHP message: PHP Warning:  Director::protocolAndHost() lacks sufficient information - HTTP_HOST not set. in /usr/share/nginx/html/lungmap/framework/control/Director.php on line 488
Run Code Online (Sandbox Code Playgroud)

知道是什么原因引起的吗?如果我删除该行Page.ss,页面加载完全正常.

php silverstripe

1
推荐指数
1
解决办法
52
查看次数

Perl - "/"导致用逗号分割的问题

我正在尝试用","拆分文件.这是一个CSV文件.

但是,一个"列"的值包含"/"和空格.而且它似乎对该列感到不满,并且在该列之后不会打印任何内容,而是移动到下一行.

我的代码很简单:

perl -lane '@values = split(",",$F[0]);  print $values[0]."\t".$values[3];' basefile.txt > newfile.txt
Run Code Online (Sandbox Code Playgroud)

basefile.txt看起来像:

"1","text","abc // 123 /// some more text // text","filename1"
"2","text","abc // 123 /// some more text // text","filename2"
"3","text","abc // 123 /// some more text // text","filename3"
Run Code Online (Sandbox Code Playgroud)

我的newfile.txt应该有一个输出:

"1","filename1"
"2","filename2"
"3","filename3"
Run Code Online (Sandbox Code Playgroud)

相反,我得到:

"1",
"2",
"3",
Run Code Online (Sandbox Code Playgroud)

谢谢!

perl

-1
推荐指数
1
解决办法
97
查看次数

标签 统计

asp.net-mvc ×1

c# ×1

perl ×1

php ×1

razor ×1

silverstripe ×1