我在视图中有以下代码。在我添加@if(Model.Error)之后,编译器现在抱怨错误,因为param,call和afterinit没有关闭。我试过放入文本标签无济于事。事实上,代码实际上在视图中作为常规剃刀脚本运行得很好,当我尝试预编译视图时,我得到了构建错误。
@using Core.UI;
@using Core.ViewModels.SQLServer;
@model LinkedServerListData
@{
Response.ContentType = "text/xml";
Layout = null;
}
<rows>
<head>
@if (Model.HasError)
{
<afterinit>
<call command="SetServerError">
<param>@(Model.ErrorMessage)</param>
</call>
</afterinit>
}
<settings>
<colwidth>%</colwidth>
</settings>
<column width="100" align="left" sort="server" type="ro" hidden="false" id="Server">
<![CDATA[
<div style="@Html.Raw(Grid.HEADER_STYLE_LEFT)">Linked Server Name</div>]]>
</column>
</head>
@foreach (string sServer in Model.Servers)
{
<row id="@(Guid.NewGuid().ToString())">
<cell><![CDATA[@Html.Raw(sServer)]]></cell>
</row>
}
</rows>
如果有帮助,这是错误的图像:
答案 0 :(得分:0)
显然你必须将你的文字伪装成这样的东西,这是一个需要它的游戏,并不是真正奇怪和随意的行为。
@:<afterInit>
@:<call command="SetServerError">
@:<param>Model.ErrorMessage </param>
@:</call>
@:</afterInit>
我还发现一些标签是自动关闭的,通过删除结束标签可以最大限度地减少混淆,在许多情况下不需要@:
@if (Model.GridFilterFields.Length > 0)
{
<call command="SetFilters">
<param>@MvcHtmlString.Create(Model.GridFilterFields)
<param>@MvcHtmlString.Create(Model.GridFilterValues)
</call>
}