Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# VisualStudio自动格式化不';我不能正确格式化我的razor代码_C#_Asp.net Mvc_Razor - Fatal编程技术网

C# VisualStudio自动格式化不';我不能正确格式化我的razor代码

C# VisualStudio自动格式化不';我不能正确格式化我的razor代码,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我正在使用@:正确显示一些引导列。这是我正在使用的代码: var i = 0; <div class="container-fluid"> <div class="row show-grid"> @foreach (var one in Model) { if (i % 3 == 0) { @:<div class="row show-grid

我正在使用
@:
正确显示一些引导列。这是我正在使用的代码:

var i = 0;

<div class="container-fluid">
    <div class="row show-grid">
        @foreach (var one in Model)
        {

            if (i % 3 == 0)
            {
                @:<div class="row show-grid">
            }

            <div class="one-element col-md-4">
                @one.Title
            </div>

            if ((i + 1) % 3 == 0)
            {
                @:</div>
            }

            i++;
        }
    </div>
</div>
为此:

@:
</div>
@:
然后应用程序就不再工作了


这是怎么解决的?

我用
@Html.Raw()
这样解决的:

var i = 0;

<div class="container-fluid">
    <div class="row show-grid">
        @foreach (var one in Model)
        {

            if (i % 3 == 0)
            {
                @Html.Raw("<div class=\"row show-grid\">")
            }

            <div class="one-element col-md-4">
                @one.Title
            </div>

            if ((i + 1) % 3 == 0)
            {
                @Html.Raw("</div>")
            }

            i++;
        }
    </div>
</div>
var i=0;
@foreach(模型中的var 1)
{
如果(i%3==0)
{
@Html.Raw(“”)
}
@一、标题
如果((i+1)%3==0)
{
@Html.Raw(“”)
}
i++;
}
我想这是最好的了


但是如果有人知道一种更优雅的方法,请告诉我。

这里的问题似乎是,如果(i%3==0)但如果((i+1)%3==0)在相同的条件下,你没有关闭
如果((i+1)%3==0)

这意味着您可能有一个永远不会关闭的开始
,或者一个永远不会打开的结束

您可以尝试以下方法:

var i = 0;

<div class="container-fluid">
  <div class="row show-grid">
    @foreach (var one in Model)
    {
        <div class="one-element col-md-4">
            @one.Title
        </div>

        if (i % 3 == 0)
        {
           <div class="clear"></div>
        }

        i++;
    }
  </div>
</div>
var i=0;
@foreach(模型中的var 1)
{
@一、标题
如果(i%3==0)
{
}
i++;
}
也许这就是你遇到麻烦的地方! 我更新了你的评论。
更新
@Alexei Levenkov
评论。我也在寻找更好的方法。当我需要每行3列时,我在项目中就是这样做的。

好的,我现在明白了,我错了
标记,并且:

在Razor中,标签必须正确嵌套<代码>
不可用 正确的筑巢

解决问题的最佳方法@Alexei Levenkov提到:

<div class="container-fluid">
    <div class="row show-grid">
        @foreach (var one in Model.Select((value, index) => new { value, index }).GroupBy(x => x.index / 3))
        {
            <div class="row show-grid">
                @foreach (var el in one.Select(x => x.value))
                {
                    <div class="one-element col-md-4">
                        @el.Title
                    </div>
                }
            </div>
        }
    </div>
</div>

@foreach(Model.Select((value,index)=>new{value,index}).GroupBy(x=>x.index/3)中的var-one)
{
@foreach(一个变量el.Select(x=>x.value))
{
@el.标题
}
}

但是,根据你的
Html.Raw()
方法很好。

我知道。。。但是如果我在if语句中打开和关闭标记,我应该如何使每行3列工作呢?我更新了代码以反映每行3列。这个代码对我有用。您可以在3个元素之后清除行,这将使您返回到新的行。考虑删除对OP代码的正确性的完全不公平声明…也不是说您的更改生成的标记与OP完全不同,所以我认为downvote仍然是合理的。谢谢。我想这也行得通,但这不是引导标准:我希望引导代码是干净的(没有黑客)。旁注:我认为按3分组并使用正常的Razor结构进行渲染比使用不匹配的标记进行黑客攻击要好得多。。。但这确实是一种选择。@AlexeiLevenkov听起来不错。你能提供一个例子或一个例子的链接吗?
items.Select((value,index)=>new{value,index}).GroupBy(x=>x.index/3)
或许多其他变量开始。。。搜索-我用了
Codemaid
你刚刚复制了
Alexei Levenkov
的答案/评论。我认为他应该得到表扬。也许他甚至会把它写下来作为答案。
<div class="container-fluid">
    <div class="row show-grid">
        @foreach (var one in Model.Select((value, index) => new { value, index }).GroupBy(x => x.index / 3))
        {
            <div class="row show-grid">
                @foreach (var el in one.Select(x => x.value))
                {
                    <div class="one-element col-md-4">
                        @el.Title
                    </div>
                }
            </div>
        }
    </div>
</div>