我使用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="<>4__this.Model.OrganisationWithBranches[0].HasQueryIVTRForBranches" type="hidden" value="False" />
预期的输出是(我可以从较旧的代码分支看到这一点):
<input data-val="true" data-val-required="The HasQueryIVTRForBranches field is required." name="<>4__this.Model.OrganisationWithBranches[0].HasQueryIVTRForBranches" type="hidden" value="False" />
id
属性丢失,name
的{{1}}属性看起来像Razor的解析器卡住了。
你以前见过这个吗?如何调试Razor输出?
VS2013和VS2015,ASP.NET MVC 5中的相同行为。数据进入视图是正确的。
辅助方法<>4__this.Model.OrganisationWithBranches[0].HasQueryIVTRForBranches
也会产生错误结果。
NameFor