2012-05-28 29 views
1

我得到了這個控件,它工作正常,但我需要在我的mvc3項目中使用它。我嘗試了我的方式,但沒有工作。我希望有一個人可以幫助我。這就是網絡表單自定義的控制代碼:將Webform控件轉換爲Razor語法

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> 

的CodeBehind:從Control

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); 
    } 
} 

這種自定義控件繼承。它基本上呈現一張桌子。 我試着用剃刀做這個,但沒有工作。也沒有任何錯誤。

@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); 
} 
+0

如果我是你,我會在這個特殊情況下使用ASPX視圖。機會是,控制將在ASPX MVC引擎中正常工作,因爲似乎沒有事件發生。在剃刀中它可能根本不起作用。 –

回答

0

您不能在ASP.NET MVC應用程序中使用服務器端控件。儘管使用Razor的WebForms視圖引擎仍有可能(但不推薦),但這不再可能。如果您絕對需要調用服務器端控件,請嘗試將WebForms視圖引擎用於需要調用該控件的特定視圖。但是如果這個控件依賴於ViewState和PostBacks,它將無法工作。