ASP.NET MVC - 重用部分视图?

时间:2013-09-17 13:54:20

标签: asp.net-mvc razor asp.net-mvc-partialview

我正在尝试将“Competencia”重新用作另一个页面中的局部视图。就像旧的Web控件一样。 当我作为“普通页面”运行时,输入

http://mydomain/Competencia

控件工作正常。当我使用is作为局部视图时,它不会渲染

 @section Scripts {
        <script src="@Url.Content("~/ViewScripts/Competencia/Index.js")" type="text/javascript"></script>
    }
显然,找不到方法PopularGridArquivo里面吧。 以下是代码:

Competencia / Index.js

/// <reference path="Competencia.js" />
function PopularGridArquivo(mes) {
    if (mes != "") {
        $.ajax({
            url: '/Competencia/ListarArquivosCompetencia',
            type: 'post',
            data: {
                competencia: mes,
                caminhoArquivo: $("#path").val()
            },
            success: function (html) {
                $("#divDetalhe").html(html);
            },
            error: function (a, b, c) {
                alert(c);
            }
        });
    }
    else {
        $("#divdetalhe").html('');
    }
}

CompetenciaController:

public class CompetenciaController : Controller
    {
        //
        // GET: /Competencia/

        public ActionResult Index()
        {
            Competencia compet = new Competencia();
            compet.pathCompetencias = @"c:\temp\MUMPS\";
            ViewBag.Competencia = compet;
            return View(compet);
        }

        [HttpPost]
        //public PartialViewResult ListarArquivosCompetencia(string competencia, string caminhoArquivo)
        public PartialViewResult ListarArquivosCompetencia(string competencia, string caminhoArquivo)
        {
            IList<FileInfo> listaArquivos = null;

            IList<CargaArquivos> listaCargaArquivos = new List<CargaArquivos>();
            CargaArquivos oCargaArquivos = null;

            //Popular combo de meses
            //caminhoArquivo = System.Configuration.ConfigurationManager.AppSettings["FullPathExcelCalculoFechamentoMumps"].ToString();

            //string caminhoArquivo = System.Configuration.ConfigurationManager.AppSettings["FullPathExcelCalculoFechamentoMumps"].ToString();

            //DateTime data = new DateTime(DateTime.Now.Year, mes, 1);

            caminhoArquivo = string.Format("{0}{1:MMyyyy}", caminhoArquivo, competencia);

            listaArquivos = PastaArquivo.ListarArquivosDiretorio(caminhoArquivo);

            if (listaArquivos.Count > 0)
            {
                foreach (var item in listaArquivos)
                {
                    oCargaArquivos = new CargaArquivos();

                    oCargaArquivos.CaminhoArquivo = item.DirectoryName;
                    oCargaArquivos.NomeArquivo = item.Name;

                    listaCargaArquivos.Add(oCargaArquivos);
                }
                ViewBag.listaCargaArquivos = listaCargaArquivos;
            }

            //return PartialView("_DetalheCarga", ViewBag.listaCargaArquivos);
            return PartialView("_DetalheCarga", ViewBag.listaCargaArquivos);
        }

    }

/Views/Competencia/Index.cshtml

@model IcatuValor.Models.Competencia

@section Scripts {
    <script src="@Url.Content("~/ViewScripts/Competencia/Index.js")" type="text/javascript"></script>
}

<fieldset>
    <div class="left-column">
        @Html.Hidden("path", Model.pathCompetencias)
        <label class="control-label">&nbsp;Competência:  &nbsp;@Html.DropDownList("ddMeses", new SelectList(Model.Competencias, "Key", "Value"), "Selecione", new { onChange = "JavaScript: PopularGridArquivo(this.value);", @class = "dropdown" })</label>
    </div>

    <div id="divDetalhe"></div>
    @{
        if (Model.arquivos != null)
        {
            Html.RenderPartial("_DetalheCarga", (IList<ViewModels.CargaArquivos>)ViewBag.listaCargaArquivos);
            //Html.Partial("_DetalheCarga");
        }
    }
</fieldset>

Model Competencia:

using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using System.Web;

namespace IcatuValor.Models
{
    public class Competencia
    {
        public string pathCompetencias { get; set; }
        public string pathSubDir { get; set; }

        public IEnumerable<KeyValuePair<string, string>> Competencias
        {
            get
            {
                //Expressão regular para validar o nome da pasta como formato MMYYYY 
                var re = new Regex(@"^(0[1-9]|1[0-2])(19|2[0-1])\d{2}$");

                DirectoryInfo dirInfo = new DirectoryInfo(pathCompetencias);

                foreach (DirectoryInfo dir in dirInfo.GetDirectories())
                {
                    //Somente entram na listagem diretórios que satisfizerem o formato MMYYYY
                    if (re.IsMatch(dir.Name))
                        yield return new KeyValuePair<string, string>
                            (
                                dir.Name,
                                CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(Convert.ToInt16(dir.Name.Substring(0, 2))) + "/" + dir.Name.Substring(2)
                            );
                }
            }
        }

        public IList<DirectoryInfo> Subdiretorios
        {
            get
            {
                DirectoryInfo di = new DirectoryInfo(pathSubDir);
                return di.GetDirectories();
            }
        }

        public IList<FileInfo> arquivos
        {
            get;

            set;
        }

    }
}

最后,另一个页面将使用“Competencia”:

Cargamumps / Index.cshtml

 @section Scripts {
    <script src="@Url.Content("~/ViewScripts/CargaMumps/Index.js")" type="text/javascript"></script>
}


<fieldset>
    <legend>Carregar Arquivos</legend>

    @*<div class="input-append date datepicker" data-date-format="dd/mm/yyyy">
        <label class="lbl">Data início</label>
        <input type="text" class="datePicker" name="DataInicio" id="DataInicio" style="width: auto">
    </div>*@

    <div class="input-append" id="divArquivos">
       <div class="input-append">
            <label class="control-label">LF02 (LF02AAAAMM.TXT):</label>
            @Html.TextBox("filLF02", null, new { type = "file", @class = "input-large" })
        </div>

        <div class="input-append">
            <label class="control-label">LF03 (LF03AAAAMM.TXT):</label>
            @Html.TextBox("filLF03", null, new { type = "file", @class = "input-large" })
        </div>

        <div class="input-append">
            <label class="control-label">Pendência Atual (PendentesAAAAMM.txt):</label>
            @Html.TextBox("filPendentes", null, new { type = "file", @class = "input-large" })
        </div>

          <div class="input-append">
            <label class="control-label">Pendência Anterior (PendentesAAAAMM.txt):</label>
            @Html.TextBox("filPendentesAnterior", null, new { type = "file", @class = "input-large" })
        </div>

        <br />
        <div class="input-append">
            <button type="submit" class="btn btn-primary" id="btnSubmit">Executar Matemática</button>
        </div>
    </div>
</fieldset>


<fieldset>

    @{
        //RENDERS OK
        Html.RenderPartial("~/Views/Competencia/Index.cshtml", (IcatuValor.Models.Competencia)ViewBag.Competencia);
    }
</fieldset>

CargamumpsController.cs

using System.Web.Mvc;
using System;
using DAL.Repository;
using System.Data;
using System.Data.SqlClient;
using Excel = Microsoft.Office.Interop.Excel;
using System.Linq;
using System.Collections.Generic;
using System.IO;
using ViewModels;
using DAL;
using System.Text.RegularExpressions;
using System.Management;
using System.Text;
using System.Runtime.InteropServices;
using System.Net;
using System.Collections;
using System.Diagnostics;
using IcatuValor.Utils;
using IcatuValor.Models;

namespace IcatuValor.Controllers
{
    public class CargaMumpsController : Controller
    {
        #region Actions

        private Dictionary<string, string> dictionary = new Dictionary<string, string>();

        public enum ELivro
        {
            LF02 = 1,
            LF03 = 2,
            Pendentes = 3,
            PendentesAnterior = 4
        }

        public ActionResult Index()
        {
            //Pega o mês anterior ultimo fechamento
            DateTime now = DateTime.Now.AddMonths(-1);
            Competencia compet = new Competencia();
            compet.pathCompetencias = @"c:\temp\MUMPS\";
            ViewBag.Competencia = compet;
            return View();
            //ListarArquivosMes(now.Month);
            //return View();
        }



        [HttpPost]
        public string Upload(FormCollection form)
        {
            try
            {
                ProcedureRepository procedureRepository = new ProcedureRepository();
                DataTable dtResultado = null;

                double somaEmissoes, somaCancelamentos, somaPagos, somaPendente, somaPendenteAnterior;

                Stopwatch st = new Stopwatch();
                st.Start();

                string pathLF02 = Utils.PastaArquivo.RetornarcaminhoArquivo(form["arquivo1"]);
                string pathLF03 = Utils.PastaArquivo.RetornarcaminhoArquivo(form["arquivo2"]);
                string pathPendentes = Utils.PastaArquivo.RetornarcaminhoArquivo(form["arquivo3"]);
                string pathPendentesAnterior = Utils.PastaArquivo.RetornarcaminhoArquivo(form["arquivo4"]);

                //Pegar mes atual e anterior com base no mes e ano dos nomes dos arquivos.
                FileInfo fi = new FileInfo(pathLF02);

                int ano, mes;

                if (!int.TryParse(fi.Name.Substring(4, 4), out ano) || !int.TryParse(fi.Name.Substring(8, 2), out mes))
                    throw new Exception("O nome do arquivo LF02 deve estar no formato 'LF02AAAAMM.TXT'.\n\nAAAA - Ano com 4 digitos\nMM - Mês com 2 dígitos.");

                DateTime dataFechamento = new DateTime(ano, mes, 1);

                //DateTime dataFechamento = Convert.ToDateTime(form["dtInicio"]);

                IDataReader dr;

                #region LF02
                if (!string.IsNullOrEmpty(pathLF02))
                {
                    //dtResultado = Utils.PastaArquivo.CriarDataTable(pathLF02);

                    //AjustarColunas(dtResultado, ELivro.LF02);
                    dr = Utils.PastaArquivo.CriarOleDbDataReader(pathLF02);
                    procedureRepository.TruncarTabela("dbo.LivroMumps_LF02");
                    procedureRepository.ExecutarBulkInsert(dr, "dbo.LivroMumps_LF02");
                    //procedureRepository.ExecutarBulkInsert(dtResultado, "dbo.LivroMumps_LF02");
                    //dtResultado.Clear();

                }
                #endregion

                #region LF03
                if (!string.IsNullOrEmpty(pathLF03))
                {
                    //dtResultado = Utils.PastaArquivo.CriarDataTable(pathLF03);

                    //AjustarColunas(dtResultado, ELivro.LF03);

                    //procedureRepository.TruncarTabela("dbo.LivroMumps_LF03");
                    //procedureRepository.ExecutarBulkInsert(dtResultado, "dbo.LivroMumps_LF03");
                    //dtResultado.Clear();
                    dr = Utils.PastaArquivo.CriarOleDbDataReader(pathLF03);
                    procedureRepository.TruncarTabela("dbo.LivroMumps_LF03");
                    procedureRepository.ExecutarBulkInsert(dr, "dbo.LivroMumps_LF03");
                }
                #endregion

                #region Pendentes
                if (!string.IsNullOrEmpty(pathPendentes))
                {
                    //dtResultado = Utils.PastaArquivo.CriarDataTable(pathPendentes);

                    //AjustarColunas(dtResultado, ELivro.Pendentes);

                    //procedureRepository.TruncarTabela("dbo.LivroMumps_Pendentes");
                    //procedureRepository.ExecutarBulkInsert(dtResultado, "dbo.LivroMumps_Pendentes");
                    //dtResultado.Clear();
                    dr = Utils.PastaArquivo.CriarOleDbDataReader(pathPendentes);
                    procedureRepository.TruncarTabela("dbo.LivroMumps_Pendentes");
                    procedureRepository.ExecutarBulkInsert(dr, "dbo.LivroMumps_Pendentes");
                }
                #endregion

                #region Pendentes Mês Anterior
                if (!string.IsNullOrEmpty(pathPendentesAnterior))
                {
                    //dtResultado = Utils.PastaArquivo.CriarDataTable(pathPendentesAnterior);

                    //AjustarColunas(dtResultado, ELivro.PendentesAnterior);

                    //procedureRepository.TruncarTabela("dbo.LivroMumps_Pendentes_Anterior");
                    //procedureRepository.ExecutarBulkInsert(dtResultado, "dbo.LivroMumps_Pendentes_Anterior");
                    //dtResultado.Clear();
                    dr = Utils.PastaArquivo.CriarOleDbDataReader(pathPendentesAnterior);
                    procedureRepository.TruncarTabela("dbo.LivroMumps_Pendentes_Anterior");
                    procedureRepository.ExecutarBulkInsert(dr, "dbo.LivroMumps_Pendentes_Anterior");
                }
                #endregion

                dtResultado = procedureRepository.CalcularFechamentoMumps(dataFechamento, out somaEmissoes, out somaCancelamentos, out somaPagos, out somaPendente, out somaPendenteAnterior);

                GerarPlanilhaExcel(dtResultado, dataFechamento, somaEmissoes, somaCancelamentos, somaPagos, somaPendente, somaPendenteAnterior);

                //TODO - VERIFICAR NECESSIDADE DE ENVIAR E-MAIL.
                //EnviarEmail(dataFechamento);

                st.Stop();

                return "Calculo executado com sucesso.\n\nTempo de execução: " + st.Elapsed.ToString();
            }
            catch (Exception ex)
            {
                PastaArquivo.EscreveLog(ex.ToString());
                return ex.ToString();
            }
        }

        private void EnviarEmail(DateTime dtCompetencia)
        {
            string emailPara = System.Configuration.ConfigurationManager.AppSettings["EmailPara"].ToString();
            string mesAnoCompetencia = dtCompetencia.ToString("MM/yyyy");
            string msgEmail = "Fechamento de prêmios (MUMPS) referente a " + mesAnoCompetencia + " concluído com sucesso!";
            string assuntoEmail = "Fechamento " + mesAnoCompetencia + " - MUMPS";
            string emailDe = System.Configuration.ConfigurationManager.AppSettings["EmailDe"].ToString();

            if (!string.IsNullOrEmpty(emailPara) && !string.IsNullOrEmpty(emailDe))
                Utils.Email.EnviarEmail(emailDe, emailPara, msgEmail + "\n \n", assuntoEmail);
        }

        private void GerarPlanilhaExcel(DataTable dtResultado, DateTime dataFechamento, double somaEmissoes, double somaCancelamentos, double somaPagos, double somaPendente, double somaPendenteAnterior)
        {
            Microsoft.Office.Interop.Excel.Application xlApp;
            Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
            Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
            object misValue = System.Reflection.Missing.Value;

            //Pega o caminho onde será salvo o nosso arquivo
            string caminhoArquivo = System.Configuration.ConfigurationManager.AppSettings["FullPathExcelCalculoFechamentoMumps"].ToString();

            //Criar uma pasta para identificar o mes referencia
            caminhoArquivo = string.Format("{0}{1:MMyyyy}", caminhoArquivo, dataFechamento);

            Utils.PastaArquivo.VerificaExistenciaECriaPasta(caminhoArquivo);

            string filename = string.Format(@"{0}\Pend_{1:MMyyyy}.xls", caminhoArquivo, dataFechamento);

            // Verifica se existe algum arquivo com o mesmo nome e caminho de destino, se existir exclui
            if (System.IO.File.Exists(filename)) System.IO.File.Delete(filename);

            xlApp = new Microsoft.Office.Interop.Excel.Application();

            xlWorkBook = xlApp.Workbooks.Open(Server.MapPath("~/LivrosMumps/Template.xls"), 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, false, false, false);

            xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

            xlWorkSheet.get_Range("A2").Value = string.Format("CONTROLE DE RELATÓRIOS - {0:MM/yyyy}", dataFechamento);
            xlWorkSheet.get_Range("B6;B35;B67;B97;B128").Value = string.Format("{0:MM/yyyy}", dataFechamento.AddMonths(-1));
            xlWorkSheet.get_Range("F6;F35;F67;F97;F128").Value = string.Format("{0:MM/yyyy}", dataFechamento);

            InserirValores(dtResultado, xlWorkSheet);

            xlWorkBook.SaveAs(filename, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookDefault, misValue, misValue, misValue, misValue, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);

            xlWorkBook.Close(false, filename, misValue);

            xlApp.Quit();

            Utils.PastaArquivo.liberarObjetos(xlWorkSheet);
            Utils.PastaArquivo.liberarObjetos(xlWorkBook);
            Utils.PastaArquivo.liberarObjetos(xlApp);

        }

        /// <summary>
        /// Insere os valores na planilha template
        /// </summary>
        /// <param name="dtResultado">Datatable com os valores do livro</param>
        /// <param name="xlWorkSheet">Planilha</param>
        private void InserirValores(DataTable dtResultado, Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet)
        {
            List<string> result;
            ProcedureRepository pr = new ProcedureRepository();

            foreach (DataRow dr in dtResultado.Rows)
            {
                result = pr.ObterValoresLivroMumps(Convert.ToInt16(dr["COD_RAMO"].ToString()), dr["SUCURSAL"].ToString());

                if (result.Count > 0)
                {
                    xlWorkSheet.get_Range(result[0]).Value = Convert.ToDouble(dr["PREMIO_PENDENTE_ANT"].ToString());
                    xlWorkSheet.get_Range(result[1]).Value = Convert.ToDouble(dr["PREMIO_EMITIDO"].ToString());
                    xlWorkSheet.get_Range(result[2]).Value = Convert.ToDouble(dr["PREMIO_CANCELADO"].ToString());
                    xlWorkSheet.get_Range(result[3]).Value = Convert.ToDouble(dr["PREMIO_PAGO"].ToString());
                    xlWorkSheet.get_Range(result[4]).Value = Convert.ToDouble(dr["PREMIO_PENDENTE"].ToString());
                }
            }
        }



        [HttpPost]
        public ActionResult AbrirArquivoExcel(CargaArquivos cargaArquivos)
        {
            Utils.PastaArquivo.ExportarCSV(cargaArquivos.CaminhoArquivo + @"\" + cargaArquivos.NomeArquivo);

            return View();
        }

        [HttpPost]
        //public PartialViewResult ListarArquivosMes(int mes)
        //{
        //    IList<FileInfo> listaArquivos = null;
        //    IList<CargaArquivos> listaCargaArquivos = new List<CargaArquivos>();
        //    CargaArquivos oCargaArquivos = null;

        //    //Popular combo de meses
        //    ViewBag.ListaMeses = Model.AllMonths;

        //    string caminhoArquivo = System.Configuration.ConfigurationManager.AppSettings["FullPathExcelCalculoFechamentoMumps"].ToString();

        //    DateTime data = new DateTime(DateTime.Now.Year, mes, 1);

        //    caminhoArquivo = string.Format("{0}{1:MMyyyy}", caminhoArquivo, data);

        //    listaArquivos = Utils.PastaArquivo.ListarArquivosDiretorio(caminhoArquivo);

        //    if (listaArquivos.Count > 0)
        //    {
        //        foreach (var item in listaArquivos)
        //        {
        //            oCargaArquivos = new CargaArquivos();

        //            oCargaArquivos.CaminhoArquivo = item.DirectoryName;
        //            oCargaArquivos.NomeArquivo = item.Name;

        //            listaCargaArquivos.Add(oCargaArquivos);
        //        }
        //        ViewBag.listaCargaArquivos = listaCargaArquivos;
        //    }

        //    return PartialView("_DetalheCarga", ViewBag.listaCargaArquivos);
        //}

        #endregion

        #region Métodos privados

        /// <summary>
        /// Faz o de-para das colunas do TXT para as colunas da Base de Dados
        /// </summary>
        /// <param name="dtResultado"></param>
        /// <param name="livro"></param>
        private void AjustarColunas(DataTable dtResultado, ELivro livro)
        {
            dictionary.Clear();

            switch (livro)
            {
                case ELivro.LF02:
                    LerDictionaryLF02();
                    break;
                case ELivro.LF03:
                    LerDictionaryLF03();
                    break;
                case ELivro.Pendentes:
                case ELivro.PendentesAnterior:
                    LerDictionaryPendentes();
                    break;
            }

            foreach (DataColumn dc in dtResultado.Columns)
            {
                if (dictionary.FirstOrDefault(x => x.Key == dc.ColumnName).Value == null)
                    throw new Exception(string.Format("Coluna: {0} inválida no livro {1}.", dc.ColumnName, livro.ToString()));

                dc.ColumnName = dictionary[dc.ColumnName];
            }
        }

        private void LerDictionaryLF02()
        {
            dictionary.Add("sucursal", "Sucursal");
            dictionary.Add("ramo", "Ramo");
            dictionary.Add("data emissao", "DataEmissao");
            dictionary.Add("numero da cobranca", "Numero_da_Cobranca");
            dictionary.Add("numero da apolice", "Numero_da_Apolice");
            dictionary.Add("segurado ou estipulante", "Segurado_ou_Estipulante");
            dictionary.Add("inicio seguro", "Inicio_Seguro");
            dictionary.Add("termino seguro", "Termino_Seguro");
            dictionary.Add("parcela/fatura", "Parcela_Fatura");
            dictionary.Add("premio da lider", "Premio_da_Lider");
            dictionary.Add("premio das cosseguradoras", "Premio_das_Cosseguradoras");
            dictionary.Add("custo de emissao", "Custo_de_Emissao");
            dictionary.Add("iof", "IOF");
            dictionary.Add("premio total", "Premio_Total");
            dictionary.Add("risco", "Risco");
            dictionary.Add("produto", "Produto");
            dictionary.Add("data venc fat", "Data_Venc_Fat");
            dictionary.Add("data pagto fat", "Data_Pagto_Fat");
            dictionary.Add("data emissao_", "Data_Emissao_Cancelamento");
            dictionary.Add("quantidade de vidas", "Quantidade_de_Vidas");
            dictionary.Add("descricao da periodicidade de pagamento", "Descr_Period_Pagamento");
            dictionary.Add("tipo de apolice", "Tipo_de_Apolice");
            dictionary.Add("competencia inicial", "Competencia_Inicial");
            dictionary.Add("competencia final", "Competencia_Final");
            dictionary.Add("data da arrecadacao", "Data_da_Arrecadacao");
            dictionary.Add("ipd", "IPD");
            dictionary.Add("idade", "Idade");
            dictionary.Add("data de nascimento", "Data_de_Nascimento");
            dictionary.Add("codigo da periodicidade de pagamento", "Codigo_Period_Pagamento");
            dictionary.Add("matricula", "Matricula");
            dictionary.Add("taxa", "Taxa");
            dictionary.Add("importancia segurada", "Importancia_Segurada");
            dictionary.Add("canal", "Canal");
            dictionary.Add("ccusto", "CCusto");
            dictionary.Add("unidprod", "UnidProd");
            dictionary.Add("corretagem", "Corretagem");
            dictionary.Add("angariacao", "Angariacao");
            dictionary.Add("pro-labore", "Pro_labore");
            dictionary.Add("keyaccount", "KeyAccount");
        }

        private void LerDictionaryLF03()
        {
            dictionary.Add("sucursal", "Sucursal");
            dictionary.Add("ramo", "Ramo");
            dictionary.Add("data de emissão", "Data_Emissao");
            dictionary.Add("data de emiss?", "Data_Emissao");
            dictionary.Add("ordem da apolice", "Ordem_Apolice");
            dictionary.Add("numero da apolice", "Numero_Apolice");
            dictionary.Add("parcela", "Parcela");
            dictionary.Add("segurado/estipulante", "Segurado_Estipulante");
            dictionary.Add("produto", "Produto");
            dictionary.Add("ini seguro", "InicioSeguro");
            dictionary.Add("prem/juros", "Prem_Juros");
            dictionary.Add("premio da lider", "PremioLider");
            dictionary.Add("custo de emissao", "Custo_Emissao");
            dictionary.Add("iof", "IOF");
            dictionary.Add("premio total", "PremioTotal");
            dictionary.Add("fatura", "Fatura");
            dictionary.Add("a/r", "AR");
            dictionary.Add("risco", "Risco");
            dictionary.Add("dt ef cob", "Dt_Ef_Cob");
            dictionary.Add("cpf/cnpj", "CPF_CNPJ");
            dictionary.Add("fim seguro", "Fim_Seguro");
            dictionary.Add("juros da lider", "Juros_Lider");
            dictionary.Add("juros cossegur.", "Juros_Cosseguro");
            dictionary.Add("corretagem", "Corretagem");
            dictionary.Add("angariacao", "Angariacao");
            dictionary.Add("pro-labore", "ProLabore");
            dictionary.Add("comp inicial", "CompInicial");
        }

        private void LerDictionaryPendentes()
        {
            dictionary.Add("unidade produtora", "Unidade_Produtora");
            dictionary.Add("ramo", "Ramo");
            dictionary.Add("produto", "Produto");
            dictionary.Add("data emissao", "Data_Emissao");
            dictionary.Add("cobranca", "Cobranca");
            dictionary.Add("apolice", "Apolice");
            dictionary.Add("estipulante", "Estipulante");
            dictionary.Add("vigencia", "Vigencia");
            dictionary.Add("data vencimento", "Data_Vencimento");
            dictionary.Add("valor bruto emitido", "Valor_Bruto_Emitido");
            dictionary.Add("fatura", "Fatura");
            dictionary.Add("cod ramo_produto", "Cod_Ramo_Produto");
            dictionary.Add("descricao", "Descricao");
            dictionary.Add("cod canal", "Cod_Canal");
            dictionary.Add("descricao_", "Descricao_Canal");
            dictionary.Add("sucursal", "Sucursal");
            dictionary.Add("centro de custo", "CCusto");
            dictionary.Add("corretagem", "Corretagem");
            dictionary.Add("angariacao", "Angariacao");
            dictionary.Add("prolabore", "Prolabore");
            dictionary.Add("keyaccount", "KeyAccount");
            dictionary.Add("vl_iof", "Vl_IOF");
        }

        #endregion

    }
}

1 个答案:

答案 0 :(得分:0)

如果我正确理解你,你有一个强类型的视图,你想在多个页面上使用(Cargamumps / Index和Competencia / Index.cshtml)。这两个索引页面共享相同的ViewModel类型Competencia。

如果是这种情况,我建议将共同内容提取到Shared / EditorTemplates或Shared / DisplayTemplates下的部分视图中。然后在两个索引视图中,调用EditorFor或DisplayFor。

Html.EditorFor(m => m);

Html.DisplayFor(m => m);

如果您的ViewData.Model是Competencia类型,它将找到正确的编辑器/显示模板并将其呈现为内联,并正确构造任何控件的id / name,以便模型绑定可以直接使用。