Asp.net mvc 不成功事务上的加密值
我在.NETMVC项目中使用Braintree.js加密信用卡详细信息。积极的案例运作良好,交易成功 问题是,我在控制器上进行了一些验证,当我再次显示视图(如果有错误)时,信用卡字段现在包含加密值。我尝试将模型属性设置为空字符串以清除它们,但加密值仍然存在 有人有一个优雅的解决方案吗?谢谢 我的html代码如下所示:Asp.net mvc 不成功事务上的加密值,asp.net-mvc,braintree,Asp.net Mvc,Braintree,我在.NETMVC项目中使用Braintree.js加密信用卡详细信息。积极的案例运作良好,交易成功 问题是,我在控制器上进行了一些验证,当我再次显示视图(如果有错误)时,信用卡字段现在包含加密值。我尝试将模型属性设置为空字符串以清除它们,但加密值仍然存在 有人有一个优雅的解决方案吗?谢谢 我的html代码如下所示: <script type="text/javascript" src="https://js.braintreegateway.com/v1/braintree.js">
<script type="text/javascript" src="https://js.braintreegateway.com/v1/braintree.js"></script>
<script type="text/javascript">
var braintree = Braintree.create("key");
braintree.onSubmitEncryptForm('braintree-payment-form');
</script>
@model SubscriptionModel
<form action="@Url.Action("Subscribe", "Home")" method="POST" id="braintree-payment-form">
<ul>
<li>
<div class="text">@Html.TextBoxFor(x => x.CreditInfo.CardholderName, new Dictionary<string, object> { { "data-encrypted-name", "CreditInfo.CardholderName" } })</div>
</li>
<li>
<div class="text">@Html.TextBoxFor(x => x.CreditInfo.CardNumber, new Dictionary<string, object> { { "data-encrypted-name", "CreditInfo.CardNumber" } })</div>
</li>
<li>
<div class="text">@Html.TextBoxFor(x => x.CreditInfo.Cvv,new Dictionary<string, object> { { "data-encrypted-name", "CreditInfo.Cvv" } })</div>
</li>
<li>
<div class="text">
@Html.TextBoxFor(x => x.CreditInfo.ExpirationMonth, new Dictionary<string, object> { { "data-encrypted-name", "CreditInfo.ExpirationMonth" } })<div>
@Html.TextBoxFor(x => x.CreditInfo.ExpirationYear, new Dictionary<string, object> { { "data-encrypted-name", "CreditInfo.ExpirationYear" } })
</div>
</li>
</ul>
<button>Submit</button>
</form>
var braintree=braintree.create(“key”);
braintree.onSubmitEncryptForm(“braintree-payment-form”);
@模型订阅模型
-
@Html.TextBoxFor(x=>x.CreditInfo.cardingName,新字典{{“数据加密名称”,“CreditInfo.cardingName”})
-
@Html.TextBoxFor(x=>x.CreditInfo.CardNumber,新字典{{“数据加密名称”,“CreditInfo.CardNumber”})
-
@TextBoxFor(x=>x.CreditInfo.Cvv,新字典{{“数据加密名称”,“CreditInfo.Cvv”})
-
@Html.TextBoxFor(x=>x.CreditInfo.ExpirationMonth,新字典{{“数据加密名称”,“CreditInfo.ExpirationMonth”})
@TextBoxFor(x=>x.CreditInfo.ExpirationYear,新字典{{“数据加密名称”,“CreditInfo.ExpirationYear”})
提交
我通过用常规输入文本框替换HTML.TextBoxFor解决了这个问题,如下所示:
<input type="text" autocomplete="off" data-encrypted-name="CreditInfo.CardholderName"/>
如果您使用的是MVC,请注意,您的数据加密名称值必须与模型的属性匹配,以便在发布时正确提交。再次显示视图后,字段仍然会被清除,但这对我来说已经足够了。请提供您认为错误的代码。添加了我的HTML代码。只是重申一下,实际订阅工作正常。我的问题是,如果我再次显示视图,文本框的数据将替换为加密值。