【发布时间】:2014-11-13 13:52:48
【问题描述】:
所以我在构建和运行良好的视图中有一些有效的 Razor 语法代码。但是,在 Visual Studio 2012 中,代码格式不正确,Razor 在解析此文档时似乎“脆弱”,当我自动格式化代码 CTRL + K + D 时。一些内容向左浮动,丑陋,没有格式化为嵌套的父级-子结构。我无法在第二个 if 条件中添加 @,这可以修复浮动的左侧 HTML 内容。
@foreach (var customField in Model.CustomFields)
{
<tr>
<td>
@customField.label
</td>
<td>
<div class="col-md-4 padding-0">
@switch (customField.custom_field_type_id)
{
case Constants.CustomFieldType.checkbox:
foreach (var opt in customField.custom_field_options.Select((x, i) => new { Data = x, Index = i }))
{
var optValue = customField.custom_field_values.FirstOrDefault(item => item.custom_field_option_id == opt.Data.custom_field_option_id && item.custom_field_id == customField.custom_field_id);
<div class="checkbox">
<label>@opt.Data.custom_field_option_value</label>
@if (optValue != null)
{
var optName = customField.custom_field_id + "_" + opt.Data.custom_field_option_id + "_" + optValue.custom_field_value_id;
<input type="checkbox" id="CustomFieldEdit_@opt.Data.custom_field_option_id" name="CustomFieldEdit_@optName" @(optValue.value.ToLower() == "true" ? "checked" : "") />
<input type="hidden" id="CustomFieldOrig_@opt.Data.custom_field_option_id" name="CustomFieldOrig_@optName" value="@optValue.value" />
}
else
{
var optName = customField.custom_field_id + "_" + opt.Data.custom_field_option_id + "_0";
<input type="checkbox" id="CustomFieldEdit_@(opt.Data.custom_field_option_id)" name="CustomFieldEdit_@optName" @(opt.Data.is_checked ? "checked" : "") />
}
</div>
}
break;
case Constants.CustomFieldType.text_input:
var textinputVal = customField.custom_field_values.FirstOrDefault();
if (textinputVal != null)
{
var textInputName = customField.custom_field_id + "_0_" + textinputVal.custom_field_value_id;
<input type="text" id="CustomFieldEdit_@(customField.custom_field_id)" name="CustomFieldEdit_@(textInputName)" value="@textinputVal.value" class="form-control" />
<input type="hidden" id="CustomFieldOrig_@(customField.custom_field_id)" name="CustomFieldOrig_@(textInputName)" value="@textinputVal.value" class="form-control" />
}
else
{
var textInputName = customField.custom_field_id + "_0_0";
<input type="text" id="CustomFieldEdit_@(customField.custom_field_id)" name="CustomFieldEdit_@(textInputName)" class="form-control" />
}
break;
}
</div>
</td>
</tr>
}
查看 Visual Studio 2012 Professional 如何格式化我的视图代码的屏幕截图
【问题讨论】:
标签: c# asp.net-mvc visual-studio visual-studio-2012 razor