Html Helper HiddenFor Name已损坏,Id遗失

时间:2015-09-28 16:14:12

标签: asp.net-mvc razor razorgenerator

我使用RazorGenerator将视图嵌入到共享DLL中。我有HiddenFor生成无效的name属性和缺少的id属性。

我有一个视图模型:

public class InsuredPartiesViewModel
{
    public List<OrganisationViewModel> OrganisationWithBranches { get; set; }
    ...

public class OrganisationViewModel : IInsuredPartyViewModel
{
    public bool CanQueryIVTRForBranches { get; set; }
    ...

在Razor视图中,我使用@helper来迭代:

@helper RenderHiddenFieldsForInsuredParty(int insuredPartyIndex, bool branchesAreVisible)
{
    @Html.HiddenFor(x => Model.OrganisationWithBranches[insuredPartyIndex].CanQueryIVTRForBranches)
    ...

输出结果为:

<input data-val="true" data-val-required="The HasQueryIVTRForBranches field is required." name="&lt;>4__this.Model.OrganisationWithBranches[0].HasQueryIVTRForBranches" type="hidden" value="False" />

预期的输出是(我可以从较旧的代码分支看到这一点):

<input data-val="true" data-val-required="The HasQueryIVTRForBranches field is required." name="&lt;>4__this.Model.OrganisationWithBranches[0].HasQueryIVTRForBranches" type="hidden" value="False" />

id属性丢失,name的{​​{1}}属性看起来像Razor的解析器卡住了。

你以前见过这个吗?如何调试Razor输出?

VS2013和VS2015,ASP.NET MVC 5中的相同行为。数据进入视图是正确的。

更新

辅助方法&lt;>4__this.Model.OrganisationWithBranches[0].HasQueryIVTRForBranches也会产生错误结果。

NameFor

0 个答案:

没有答案