问题是,由于一些奇怪的原因,当我使用CheckBoxFor时,我得到一个复选框,但ID中有“CS___8__locals1”。不知道它来自何处或为何发生。
有什么想法吗?见下文:
<input class="checkbox" id="ProductPlans_0__CS___8__locals1_plans_4__IsSelected" name="ProductPlans[0].CS$<>8__locals1.plans[4].IsSelected" type="checkbox" value="true" />
我的模型是一个单独的对象(它实际上是对象集合的一部分,但这并不重要。这是我的编辑器模板(省略了@model声明):
<tr>
<td>
<label class="checkbox">
@Html.CheckBoxFor(x => Model.IsSelected, new { @class = "checkbox" })
<strong>@Model.MarketingLabel</strong>
@Html.Raw(@Model.DisplayName)
</label>
</td>
<td>
<span data-planid="@Model.Id">@Model.Premium.ToString("C")</span>
</td>
<td>
<a href="@Model.SBCUrl">Explain</a>
</td>
@Html.HiddenFor(x => Model.Id)
</tr>
答案 0 :(得分:6)
我知道这是老帖子,但可能会帮助其他人。 所以,在我的情况下,我有同样的问题,经过一些尝试和错误后问题得到解决,我们发现错误本身就是for循环。
我们的模型是这样的:
for (int i = 0; i < PatiosCobro.Count; i++)
{
<div class="col-md-4 col-sm-4 col-xs-12">
<div class="input-group input-group">
<div class="form-line">
@Html.TextBoxFor(model => PatiosCobro[i].Valor, new { htmlAttributes = new { @class = "form-control" } })
</div>
@Html.HiddenFor(model => PatiosCobro[i].CobroId)
@Html.NameFor(model => PatiosCobro[i].Valor)
</div>
</div>
}
这将抛出“CS ___ 8__locals1_ETC”
对我们有用的是取出局部变量i并在其他地方宣布它。
通过示例:
int i = 0;
for (i = 0; i < PatiosCobro.Count; i++)
{
<div class="col-md-4 col-sm-4 col-xs-12">
<div class="input-group input-group">
<div class="form-line">
@Html.TextBoxFor(model => PatiosCobro[i].Valor, new { htmlAttributes = new { @class = "form-control" } })
</div>
@Html.HiddenFor(model => PatiosCobro[i].CobroId)
@Html.NameFor(model => PatiosCobro[i].Valor)
</div>
</div>
}