微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 Razor 值传递给视图 mvc asp.net ef 内的 js <script> 时出现问题

如何解决将 Razor 值传递给视图 mvc asp.net ef 内的 js <script> 时出现问题

首先我会说昨天代码运行良好。我不知道我做错了什么,我认为这应该有效,但它并没有提前感谢您的所有帮助:

我有这个看法,我正在尝试实施 Paypal Paylemnet。这是视图中的脚本部分:

    <div id="smart-button-container">
    <div style="text-align: center;">
        <div id="paypal-button-container"></div>
    </div>
</div>



@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")



    <script src="https://www.paypal.com/sdk/js?client-id=sb&currency=EUR" data-sdk-integration-source="button-factory"></script>
    <script>
    function initPayPalButton() {
        paypal.Buttons({
            style: {
                shape: 'rect',color: 'gold',layout: 'vertical',label: 'paypal',},createOrder: function (data,actions) {
                var totalPrice = @Model.OrderDetailsVMs.Sum(x => x.TotalPricePerOrderDetails);
                return actions.order.create({
                    purchase_units: [{ "amount": { "currency_code": "EUR","value": (totalPrice + 10),"breakdown": { "item_total": { "currency_code": "EUR","value": totalPrice },"shipping": { "currency_code": "EUR","value": 10 },"tax_total": { "currency_code": "EUR","value": 0 } } } }]
                });
            },onApprove: function (data,actions) {
                return actions.order.capture().then(function (details) {
                    alert('Transaction completed by ' + details.payer.name.given_name + '!');
                });
            },onError: function (err) {
                console.log(err);
            }
        }).render('#paypal-button-container');
    }
    initPayPalButton();
    </script>
}

问题出在这一行:

var totalPrice = @Model.OrderDetailsVMs.Sum(x => x.TotalPricePerOrderDetails);

该值不会从 razor 传递到 js var。如果我将一个值硬编码为 var totalPrice,例如如果我写:

var totalPrice = 3.33;

一切正常。另外,我可以显示

的值
@Model.OrderDetailsVMs.Sum(x => x.TotalPricePerOrderDetails); 

并且它有效,所以我知道该值通过那里。谁能想到为什么值没有在脚本内部传递?

P.S 即使我尝试通过 id 传递它,我也会遇到同样的问题。

先谢谢大家。

编辑:修复了它使用的十进制值后超过两位数的问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。