Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.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
Razor-HTML.RAW不输出文本_Html_Asp.net Mvc_Razor - Fatal编程技术网

Razor-HTML.RAW不输出文本

Razor-HTML.RAW不输出文本,html,asp.net-mvc,razor,Html,Asp.net Mvc,Razor,我已经尝试了所有针对其他类似问题提出的解决方案,但它们似乎都不起作用。 本质上,我试图显示一个表格,其中充满了来自模型集合的数据。这本身不是问题,但是我想强制razor总是在3列中生成它(不管我们有多少个元素)。我最初的想法是这样做: <table class="projects-grid"> <tr> @for(int i = 0; i< Model.Count(); i++) { if (i != 0 &&

我已经尝试了所有针对其他类似问题提出的解决方案,但它们似乎都不起作用。 本质上,我试图显示一个表格,其中充满了来自模型集合的数据。这本身不是问题,但是我想强制razor总是在3列中生成它(不管我们有多少个元素)。我最初的想法是这样做:

 <table class="projects-grid">
    <tr>
    @for(int i = 0; i< Model.Count(); i++) 
     {
         if (i != 0 && i % 3 == 0) 
         {
             Html.Raw("</tr><tr>");
         }
        var item = Model.ElementAt(i);
        <td class="project-tile"> 
            @Html.DisplayFor(modelItem => item.Title)                
        </td>        
    }
    </tr>    
</table>

@对于(int i=0;iitem.Title)
}
因此,本质上,我希望Razor每输出第三个元素“”字符串,将另一行添加到表中。除了页面源代码中不存在这种刺痛之外,所有这些似乎都可以正常工作。在调试中,我可以看到这一行

 Html.Raw("</tr><tr>");
Html.Raw(“”);
实际调用,但生成的页面中不存在输出

有什么帮助吗?
事先非常感谢……

我会使用一种变通方法

尝试:


@对于(int i=0;iitem.Title)
}

希望有帮助。

它不输出的原因是因为执行的razor语法的上下文。在
if
块中,所有代码都像在常规的C#上下文中一样运行,行:

Html.Raw("</tr><tr>");

Html.Raw实际上用于换行,就像在c#中使用/n一样

例如:

<text>
@html.raw("</tr><tr>")
</text>

@html.raw(“”)
我希望它能有所帮助。

Html.Raw

在HtmlString实例中包装HTML标记,以便将其解释为HTML标记。 例如:

控制器

public actionresult Htmlraw()
{
    viewbag.message = "Hey friends lets go" + "<br />" + "for chillout";
    return view();
}

用@(和)封装Html.Raw为我解决了这个问题。尽管存在外部{和},但仍需要在每个Html.Raw语句周围使用@(和)。

确保“是否尝试使用?不需要使用Html.RawI。问题是razor找不到for循环的右括号…”(是的。刚刚注意到您的Html无效。)(未闭合标签)Razor尝试验证它。它之所以有效,不是因为包装的
,而是因为包装的
@
。如果你这样做了@it将抛出错误,因为它包装在If语句中。这就是为什么你必须转义它。你是对的。我刚刚尝试过这个。如果你在HTML助手之前添加@,似乎不需要解决方法。谢谢。。。
<text>
@html.raw("</tr><tr>")
</text>
public actionresult Htmlraw()
{
    viewbag.message = "Hey friends lets go" + "<br />" + "for chillout";
    return view();
}
@html.raw(viewbag.message);