加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – MVC HtmlHelpers与Razor有关

发布时间:2020-12-16 03:43:55 所属栏目:asp.Net 来源:网络整理
导读:我正在创建一个非盈利捐赠平台,我第一次使用MVC.我大部分时间都掌握了它,但现在我遇到了一个我不知道如何解决的问题.我正在使用AthorizeNet.Helpers类,当我从expamples添加代码时,它大部分都有效,除了它采用表单并将其放在标签上,但它将表单字段放在正确的位
我正在创建一个非盈利捐赠平台,我第一次使用MVC.我大部分时间都掌握了它,但现在我遇到了一个我不知道如何解决的问题.我正在使用AthorizeNet.Helpers类,当我从expamples添加代码时,它大部分都有效,除了它采用表单并将其放在标签上,但它将表单字段放在正确的位置.我正在试图弄清楚如何在正确的位置渲染标记.

@using AuthorizeNet.Helpers;

@using (Html.BeginSIMForm("http://127.0.0.1:4768",1.99M,"xxx_key","yyy_key",true))
{
    @Html.Raw(Html.CheckoutFormInputs(true))
    @Html.Hidden("order_id","1234")
    <input type = "submit" value = "Pay" />
}

这是它在HTML输出中的外观:

<form action = 'https://test.authorize.net/gateway/transact.dll' method = 'post'>
    <input type = 'hidden' name = 'x_fp_hash' value = '6bef386eaa89944efd62b47b86042910' &;
    <input type = 'hidden' name = 'x_fp_sequence' value = '117'&;
    <input type = 'hidden' name = 'x_fp_timestamp' value = 'xxx_key' &;
    <input type = 'hidden' name = 'x_login' value = 'yyy_key' &;
    <input type = 'hidden' name = 'x_amount' value = '1.99' &;
    <input type = 'hidden' name = 'x_relay_url' value = 'http://127.0.0.1:4768' &;
    <input type = 'hidden' name = 'x_relay_response' value = 'TRUE' &;
</form><!DOCTYPE html>
<html>
<body>
<h2>Payment Information</h2>
                <div style = 'border: 1px solid #990000; padding:12px; margin-bottom:24px; background-color:#ffffcc;width:300px'>Test Mode</div>
                <div style = 'float:left;width:250px;'>
                    <label>Credit Card Number</label>
                    <div id = 'CreditCardNumber'>
                        <input type = 'text' size = '28' name = 'x_card_num' value = '4222222222222222' id = 'x_card_num'/>
                    </div>
                </div>  
                <div style = 'float:left;width:70px;'>
                    <label>Exp.</label>
                    <div id = 'CreditCardExpiration'>
                        <input type = 'text' size = '5' maxlength = '5' name = 'x_exp_date' value = '0116' id = 'x_exp_date'/>
                    </div>
                </div>
                <div style = 'float:left;width:70px;'>
                    <label>CCV</label>
                    <div id = 'CCV'>
                        <input type = 'text' size = '5' maxlength = '5' name = 'x_card_code' id = 'x_card_code' value = '123' />
                    </div>
                </div><input id="order_id" name="order_id" type="hidden" value="1234" />        <input type = "submit" value = "Pay" />

解决方法

当为ASP.NET MVC 1编写直接写入输出流的帮助程序时,通常会发生这种问题(并且使用时封闭的帮助程序在大多数时间直接写入输出流).在ASP.NET MVC 1中,您可以使用以下命令写入输出流:

htmlHelper.ViewContext.HttpContext.Response.Output

在以后的ASP.NET MVC版本中,你应该使用这个:

htmlHelper.ViewContext.Writer

这确保了Razor的兼容性.如果您可以访问AuthorizeNet.Helpers源代码,则可以自行修复,如果不是,则必须联系作者进行修复.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读