asp.net-mvc – 不能使用以“name”结尾的数据属性?
我很清楚你使用带有连字符的数据属性的下划线(对象中的“data_bind”而不是“data-bind”),它们会自动被连字符替换.但是如果属性以“name”结尾,我遇到了你不能做这个下划线“hack”的问题.所以我尝试了这两个,但都没有工作:
@Html.TextBoxFor(model => model.Street,new { data_encrypted_name = "street" }) @Html.TextBoxFor(model => model.Street,new { @data_encrypted_name = "street" }) 当我查看生成的HTML时,对于上述两种情况,它会生成: <input data-encrypted- id="ViewModel_Street" name="ViewModel.Street" type="text" value="" /> 起初,我认为这可能与多个下划线/连字符有关,但我尝试了两个测试用例,看看会发生什么,并且它们都工作得很好: @Html.TextBoxFor(model => model.Street,new { data_encrypted_namme = "street" }) @Html.TextBoxFor(model => model.Street,new { data_name_encrypted = "street" }) 所以这个问题肯定与在属性末尾有“名字”有关. 我做错了什么或遗漏了什么,或者这是.NET如何转换属性的错误? (为了澄清,我们使用Braintree付款,他们要求在某些输入上使用“data-encrypted-name”属性,因此我们不能只选择其他属性名称.) 解决方法
感谢Tommy测试我描述的行为并发现它不是每个人的错误.
汤米写完这篇文章后,我看着我们正在使用的助手.我意识到我们实际上使用的是名为“NameLessTextBoxFor”的扩展方法(我们在这里找到它:How to extend html.textboxfor to remove the name attribute?),它在显示之前从输入中删除了name =“”属性.我应该在发布之前确认这一点,但是没有认识到它可能会影响传递给它的HTML属性. 并且,正如您可能期望的那样,此方法的功能也切断了包含name =“”的任何属性.它正在进行一个非常简单的搜索并替换该文本并将其删除.这就是问题所在. 感谢您的时间和对这个问题的关注并道歉我自己没有抓住这个. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- .NET内存泄漏
- asp.net-web-api – WebApi DelegatingHandler未调用prefli
- asp.net-mvc – 如何将控制器中的字符串消息传递给MVC中的视
- asp.net-mvc – 通过WCF服务实现寻呼机
- asp.net-core – xunit无法使用ASP.NET Core RC2进行编译
- asp.net-mvc-3 – SQL Server 2008连接字符串,用于实体框架
- 甜甜圈缓存是否正常使用ASP.NET MVC?
- asp.net-mvc-3 – ASP.NET MVC 3本地化验证消息在我的机器上
- ASP.net MVC Webforms视图引擎的缺点?
- 母版页中的ASP.NET CSS文件
- asp.net-core – 无法在VS2015中定位netstandard
- asp.net – 开发和测试环境最佳实践?
- asp.net-mvc – 如何使用Ninject将服务注入授权过
- asp.net-mvc-4 – 部署到IIS 7后,ASP.NET MVC 4
- CookieAuthenticationOptions,ExpireTimeSpan不起
- asp.net-mvc – 如何使这个ASP.NET MVC控制器更易
- IIS反向代理不使用ASP.NET中的Response.Redirect
- asp.net-mvc – ASP.net Web API和System.Net.Ht
- 经典ASP(VBScript)替换字符串中的特殊字符表现得
- asp.net-mvc – ASP.NET MVC 4中没有使用SignalR