1

我得到了这个控件,它工作正常,但我需要在我的 mvc3 项目中使用它。我尝试了我的方法,但没有奏效。我希望有一个人可以帮助我。这就是 webform 自定义控件代码:

ASPX:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="BoletoCS.aspx.cs" Inherits="BoletoCS" %>
<%@ Register Assembly="Impactro.Cobranca" Namespace="Impactro.WebControls" TagPrefix="cob" %>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Boleto</title>
    <style type="text/css">
    .BolCell { font-size: 7pt; font-family: Verdana; }
        .BolField { font-weight: bold; font-size: 12px; font-family: arial; }
</style>
</head>
<body>
    <form id="form1" runat="server">
         <cob:BoletoWeb id="bltPag" runat="server" CssCell="BolCell" CssField="BolField" ></cob:BoletoWeb>
     </form>
</body>
</html>

代码隐藏:

using System;
using Impactro.Cobranca;

public partial class BoletoCS : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        var cedente = new CedenteInfo
        {
            Cedente = "CURRICULO AUT ASS E CONS EM RH",
            Banco = "341",
            Agencia = "6157",
            Conta = "30901-1",
            Carteira = "175",
            CNPJ = "14.765.492/0001-10"
        };

        var sacado = new SacadoInfo { Sacado = "RODRIGO MANGUINHO" };

        var boleto = new BoletoInfo
        {
            NossoNumero = "44",
            ValorDocumento = 99,
            DataDocumento = DateTime.Now,
            DataVencimento = DateTime.Now.AddMonths(1),
            LocalPagamento = "PAGÁVEL EM QUALQUER BANCO ATÉ O VENCIMENTO.",
            Especie = Especies.RC,
            Instrucoes = "NÃO ACEITAR PAGAMENTO APÓS O VENCIMENTO."
        };

        bltPag.MakeBoleto(cedente, sacado, boleto);
    }
}

此自定义控件继承自 webcontrol。它基本上呈现一个表格。我试过用 Razor 做这个,但没有用。也没有任何错误。

@using Impactro.WebControls
@using Impactro.Cobranca

@{
    var ci = new CedenteInfo
    {
        Cedente = "CURRICULO AUT ASS E CONS EM RH",
        Banco = "341",
        Agencia = "6157",
        Conta = "30901-1",
        Carteira = "175",
        CNPJ = "14.765.492/0001-10"
    };

    var si = new SacadoInfo { Sacado = "RODRIGO MANGUINHO" };

    var bi = new BoletoInfo
    {
        NossoNumero = "44",
        ValorDocumento = 99,
        DataDocumento = DateTime.Now,
        DataVencimento = DateTime.Now.AddMonths(1),
        LocalPagamento = "PAGÁVEL EM QUALQUER BANCO ATÉ O VENCIMENTO.",
        Especie = Especies.RC,
        Instrucoes = "NÃO ACEITAR PAGAMENTO APÓS O VENCIMENTO."
    };

    var bw = new BoletoWeb
    {
        CssCell = "",
        CssField = "",
        ImagePath = Url.Content("~/images/bank-ticket")
    };

    bw.MakeBoleto(ci, si, bi);
}
4

1 回答 1

1

您不能在 ASP.NET MVC 应用程序中使用服务器端控件。尽管使用带有 Razor 的 WebForms 视图引擎仍然可以做到这一点(但不推荐),但现在已经不可能了。如果您绝对需要调用服务器端控件,请尝试对需要调用控件的特定视图使用 WebForms 视图引擎。但是如果这个控件依赖于 ViewState 和 PostBacks,它就不起作用了。

于 2012-05-29T06:31:16.120 回答