Пользовательские модели связующего дают ошибку

Я пытаюсь создать пользовательскую модель связки и дать несколько ошибок, как это:

public class DespesaProdutosModelBinder : IModelBinder
    {
        public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
        {
            int loop = 1;

            List<string> lista = (List<string>)bindingContext.ValueProvider.GetValue("Valor").RawValue;

            DespesasProdutos despesasProdutos = new DespesasProdutos()
            {
                NF_CNF = bindingContext.ValueProvider.GetValue("NF_CNF").AttemptedValue,
                IdFornecedor = Convert.ToInt32(bindingContext.ValueProvider.GetValue("IdFornecedor").AttemptedValue),
                DataLancamento = DateTime.Now,
                IdPagamento = Convert.ToInt32(bindingContext.ValueProvider.GetValue("IdPagamento").AttemptedValue),
                IdTipo = Convert.ToInt32(bindingContext.ValueProvider.GetValue("IdTipo").AttemptedValue),
                Descricao = bindingContext.ValueProvider.GetValue("Descricao").AttemptedValue,
                Valor = Convert.ToDecimal(bindingContext.ValueProvider.GetValue("Valor").RawValue)
            };

            List<itensDespesa> listaProdutos = new List<itensDespesa>();

            for (int i = 0; i < loop; i++)
            {
                listaProdutos.Add(new itensDespesa
                {
                   Id = Convert.ToInt32(bindingContext.ValueProvider.GetValue("Id").AttemptedValue),
                   unidade = bindingContext.ValueProvider.GetValue("unidade").AttemptedValue,
                   quantidade = Convert.ToInt32(bindingContext.ValueProvider.GetValue("quantidade").AttemptedValue),
                   valorUnit = Convert.ToDecimal(bindingContext.ValueProvider.GetValue("valorUnir").AttemptedValue),
                   centroCusto = Convert.ToInt32(bindingContext.ValueProvider.GetValue("centroCusto").AttemptedValue),
                   tarefa = Convert.ToInt32(bindingContext.ValueProvider.GetValue("tarefa").AttemptedValue),
                });
                loop++;
            }
            despesasProdutos.itens = listaProdutos;

            return despesasProdutos;
        }
    }

1 - Как создать цикл для всех продуктов на мой взгляд?

for (int i = 0; i < loop; i++)
            {
                listaProdutos.Add(new itensDespesa
                {
                   Id = Convert.ToInt32(bindingContext.ValueProvider.GetValue("Id").AttemptedValue),
                   unidade = bindingContext.ValueProvider.GetValue("unidade").AttemptedValue,
                   quantidade = Convert.ToInt32(bindingContext.ValueProvider.GetValue("quantidade").AttemptedValue),
                   valorUnit = Convert.ToDecimal(bindingContext.ValueProvider.GetValue("valorUnir").AttemptedValue),
                   centroCusto = Convert.ToInt32(bindingContext.ValueProvider.GetValue("centroCusto").AttemptedValue),
                   tarefa = Convert.ToInt32(bindingContext.ValueProvider.GetValue("tarefa").AttemptedValue),
                });
                loop++;
            }

Я знаю, что код выше генерирует ошибку, мне нужно узнать, как сделать цикл для этого.

2 - И почему код выше генерирует ошибку: System.NullReferenceException

3 - И, наконец, я считаю, что bindingContext.ValueProvider.GetValue("tarefa").AttemptedValue дает элемент, основанный на атрибуте имени, как я могу получить десятичные дроби? потому что моя культура - PT-BR, а денежные значения - "1.650,00".

0 ответов

Другие вопросы по тегам