Arquivado
Este tópico foi arquivado e está fechado para novas respostas.
Erro ao tentar passar uma lista da controller para View ASP NET MVC
Por
RODRIGO RDG, em .NET
Recommended Posts
-
Conteúdo Similar
-
Por MarKteus
Olá
Alguém sabe como posso corrigir este erro ?
Additional information: There is no ViewData item of type 'IEnumerable<SelectListItem>' that has the key
Acontece quando tento persistir dados na tabela
Trecho da VIEW
<div class="editor-label">
@Html.LabelFor(model => model.estado)
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.estado, (List<SelectListItem>)ViewBag.UF, "UF")
</div>
Trecho da Action
var siglasEstaduais = uf.uf();
var siglasItens = new List<SelectListItem>();
foreach (var item in siglasEstaduais)
{
siglasItens.Add(new SelectListItem
{
Value = item.Estado,
Text = item.Estado
});
}
ViewBag.UF = siglasItens;
Trecho do Modelo de Entidade (O modelo criei só para poder obter dados para gerar a lista, nunca existirá fisicamente no banco)
public class estados {
public int? Id { get; set; }
public string Estado { get; set; }
public IEnumerable<estados> uf()
{
estados uf = new estados();
List<estados> estado = new List<estados>();
estado.Add(new estados { Id=1,Estado="AC"});
estado.Add(new estados { Id = 2, Estado = "AL" });
-
Por MarKteus
Olá
Pessoal to com um problema bastante chato, eu até consegui fazer o @Html.EditorFor exibir corretamente uma data no formato dd/MM/yyyy porém, feito isso meu javascript não consegue mais subtrair o ano corrente do ano de nascimento para que se obtenha a idade
Somente a data ficando no modo padrão YYYY/mm/dd é que esse calculo é feito corretamente, alguém sabe como posso resolver
-
Por WellingtonSilva
Boa noite meus amigos,
Estou com um grande problema, até por ser um inexperiente com c#.
Tenho um projeto dentro do WebMatrix, onde eu criei minha conexão com um banco padrão, que possui todas as diretivas da minha aplicação (Banco_ADM), portanto dentro do meu arquivo WebConfig, esta conexão esta lá e funciona perfeitamente, eu consigo executar todas as operações que preciso através do:
Database.Open("Banco_ADM");
O problema é existem outros 'n' bancos aos quais eu preciso me conectar, só que os nomes destes banco eu só tenho quando o cliente se loga no banco principal (Banco_ADM), é aqui que a coisa pega, eu tenho todos os dados para conexão, Nome do banco, Usuário e Senha, é claro o código IP ao qual tenho que me conectar no cloud. Já tentei dezenas de strings que encontrei na internet em livros, mas nenhuma conecta no outro banco, aparecem erros diversos, basta trocar alguma coisa na string que o erro muda.
Por exemplo:
revConecta = ("Data Source=111.11.111.11; Database=banco2; User ID=sal; Password=1234");
Aqui ele me diz que o termo Data Source não condiz.
Só para constar, eu já coloquei e tirei a porta 1433 em todas as minhas tentativas.
Alguém já conseguiu fazer isso?
Obrigado
-
Por MarKteus
O que eu pretendo é simples: Quando a página voltar do post exibir uma mensagem via JS
Abaixo coloquei como foi feita a função e depois mais abaixo como estou chamando a função, note que não quero chamar após click ou após mouseover etc, quero chamar quando voltar do Post, mas a linha que destaquei em vermelho é simplesmente ignorada. Alguém pode me dar uma luz?
Função JS
<script type="text/javascript"> function mostraMsg(msg) { alert(msg); } </script>
Trecho HtmlRazor
@{
if (IsPost) { if (@ViewBag.StatusContato != null) { <script>mostraMsg("pague antecipado e ganhe descontos");</script> @ViewBag.StatusContato } } }
Att. -
Por abinalio
Boa Tarde,
Estou desenvolvendo uma aplicação web - asp.net mvc 4 razor, na qual preciso fazer:
1 - upload de 1 ou várias imagens;
2 - Grava no bd (id, descrição, referencia, nome da imagem e internet)
3 - Após o upload, apresentar estas imagens e editar os seguintes campos (descrição e internet);
4 - Gravar as alterações no bd.
na minha aplicação atual consegui fazer até o item 3 - não estou conseguindo pegar o model editado para gravar
alguém pode me ajudar??
Home Controller:
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using UpLoad.Models;
namespace UpLoad.Controllers
{
public class HomeController : Controller
{
//
// GET: /Home/
public ActionResult Index()
{
var imagens = new List<Imagem>();
var path = "";
var i = 0;
var referencia = 100;
var temObjeto = new Imagem()
{
id = i,
referencia = referencia,
caminho = path
};
imagens.Add(temObjeto);
return View(imagens);
}
[HttpPost]
public ActionResult Index(Picture picture, string salvarFotos, FormCollection form)
{
//string query = form["txtBusca"];
if (!string.IsNullOrEmpty(salvarFotos))
{
ViewBag.Title = "Atualiza Fotos";
}
var imagens = new List<Imagem>();
var i = 0;
var descricao = "Descrição ";
var referencia = 100;
foreach (var file in picture.Files)
{
i++;
if (file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/Content/images"), fileName);
file.SaveAs(path);
var temObjeto = new Imagem()
{
id = i,
referencia = referencia,
descricao = descricao,
caminho = fileName
};
imagens.Add(temObjeto);
}
}
//return RedirectToAction("Index");
return View(imagens);
}
[HttpPost]
public ActionResult Salvar(Imagem image)
{
if (ModelState.IsValid)
{
//ViewBag.Title = "Atualiza Fotos" + image.caminho;
}
return View(image);
}
}
}
Classe Imagem:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace UpLoad.Models
{
public class Imagem
{
public int id { get; set; }
public int referencia { get; set; }
public string descricao { get; set; }
public string caminho { get; set; }
}
}
Classe Picture:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace UpLoad.Models
{
public class Picture
{
public IEnumerable<HttpPostedFileBase> Files {get; set; }
}
}
View:
@model IEnumerable<UpLoad.Models.Imagem>
@{
ViewBag.Title = "Index";
var salvarFotos = "SIM";
@*<h1><img src="~/Content/images/119.JPG" /></h1>*@
}
<h2>Up Load File</h2>
@using (Html.BeginForm(null, null, new {model = Model}, FormMethod.Post))
{
<fieldset>
<legend>Imagens</legend>
@foreach (var item in Model)
{
<h1>
@Html.EditorFor(a => item.caminho)
@Html.EditorFor(a => item.descricao)
<img src="~/Content/images/@item.caminho" alt="@item.caminho" height="82" width="82" />
</h1>
}
<p>
<input type="submit" value="Salvar" />
</p>
</fieldset>
}
@using (Html.BeginForm(null, null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<table>
<tr>
<td>File:</td>
<td>
<input type="file" name="Files" id="Files" multiple /></td>
</tr>
<tr>
<td>&npsp</td>
<td>
<input type="submit" name="submit" value="UpLoad" /></td>
</tr>
</table>
}
-