Usuário com melhor resposta
retornar dados ActionResult Index

Pergunta
-
Boa tarde pessoal tudo bem ?
Estou iniciando em ASP.NET MVC 3 mas estou com uma dúvida que, acreditem não consegui resolver, é uma dúvida muito simples.
Eu tenho uma controller:
using System; using System.Linq; using System.Web.Mvc; using System.Web.Helpers; namespace ERP.Cloud.MVC.Controllers { public class PortalController : Controller { // // GET: /Portal/ public ActionResult Index() { return View(); } void Graf() { Chart chart = new Chart(width: 600, height: 400) .AddTitle("Gráfico em Barra") .AddSeries(name: "ChartBar", chartType: "bar", xValue: new[] { "Carro Esportivo", "Carro Utilitário", "Caminhonete", "Carro Passeio" }, yValues: new[] { 10, 5, 7, 25 }).Write(); } } }
no ActionResult index foi gerado a view abaixo
@{ ViewBag.Title = "Index"; Layout = "~/Views/Shared/_LayoutModulos.cshtml"; } <h2>Portal de Negócios</h2> <div> <p> </p> </div>
A duvida começa aqui:
1 -Como inserir um gráfico por exemplo nesta View ? eu inseri mas quando retorna a View só aparece o gráfico, o elemneto <h2> por exemplo desaparece...
2- Na view pode retornar outros dados de outros controllers ? se sim ... como posso faze-lo ?
tipo nesta view eu queria retornar:
A tabela (task) do banco de dados --- Obs para criar os metodos (CRUD) eu consegui
A tabela (mensagens) do banco de dados
e mais alguns controles que gostaria de adicionar na View
se fosse somente uma informação para retornar tudo bem, mas são varios controles de retorno do banco que teria a view
Tipo para listar os dados eu consigo, mas aparece em outra view gostaria de adicionar na propria view....
Desculpe se a perguntar é muito simples, mas estou realmente com duvida nisto...
Obrigado a todos...
Isco Sistemas José Luiz Borges
Respostas
-
Só sei responder uma das suas dúvidas.
Seguinte, quando numa view eu quero pegar dados de outro controller normalmente eu uso ajax:
$.ajax({ url: controler/action, data: parametros, success: success, dataType: dataType });
:D
Qualquer resposta útil ou solução deve ser marcada. Assim ajudamos a quem tem o mesmo problema a achar a resposta.- Marcado como Resposta Jose Luiz Borges segunda-feira, 5 de dezembro de 2011 16:27
-
Boa tarde
obrigado por responder....
Nossa ja vai me ajudar um monte
$.ajax({
url: Task/Index,
data: parametros,
success: success,
dataType: dataType
});Mas como vou postar o resultado dentro de uma WebGrid, ou fazer um for para postar o resultado ?
Obrigado
Isco Sistemas José Luiz Borges- Marcado como Resposta Jose Luiz Borges segunda-feira, 5 de dezembro de 2011 16:27
-
Olá
Não sei bem como levar o objeto graph pois ainda não trabalhei com ele,
Mas talves isto ajude,
No exemplo acima na chamda INDEX, voce não esta retornando nenhum dados para a view, veja abaixo
public ActionResult Index() { return View(); }
a ideia é que voce pode retornar um dado dentro da chamada por exemplo:
public ActionResult Index()
{
Ilist<pessoas> pessoas = new Ilist<pessoas>;
return View(pessoas); }
outra forma: ( é uma tentativa, ok )
public ActionResult Index() {
Chart chart = new Chart(width: 600, height: 400)
.AddTitle("Gráfico em Barra") .AddSeries(name: "ChartBar", chartType: "bar", xValue: new[] { "Carro Esportivo", "Carro Utilitário", "Caminhonete", "Carro Passeio" },
yValues: new[] { 10, 5, 7, 25 }).Write();
ViewData['Graph'] = chart; return View(); }
Desta forma voce pode tentar fazer uma chamada dentro da sua view.
<h2>
@=(Chart)ViewData['chart'];
</h2>
Tenta ai Grande.... qualquer coisa avisa,
http://fparmezani.wordpress.com- Marcado como Resposta Jose Luiz Borges segunda-feira, 5 de dezembro de 2011 16:27
-
Opa obrigado por responder...
Então o gráfico eu consegui neste final de semana, com exatamente o codigo acima...
Meu maior problema é retornar dentro da View Index mais que uma consulta ao banco de dados, por exemplo nesta página o usuário
teria:
As tarefas designadas para ele
As Mensagens postadas
A carteira de título de seus clientes
todas vindo de tabelas distintas do banco de dados, esta é a pior parte.... Como estou estudando o MVC não consigo passar desta barreira, o projeto já existe em WebForms......
O que estamos fazendo em paralelo é reescrevendo em WebForms, usando o padrão MVC, mas gostaria de utilizar o MVC 3 pela facilidade de criação de telas....
Isco Sistemas José Luiz Borges- Sugerido como Resposta Fernando Parmezani segunda-feira, 5 de dezembro de 2011 15:04
- Marcado como Resposta Jose Luiz Borges segunda-feira, 5 de dezembro de 2011 16:27
-
Opa José,
Então se entendi seu problema, voce precisa de várias "listagens" papara popular uma view correto?/
Então uma boa opção é:
1. Crie as listagens dentro das Models.
2. Na chamada da View utilize ViewData["lista1"] = recebe os dados, ou no caso do MVC 3 voce tem o VIEWBAg. (use e abuse)
3. Dentro das View recupere os dados dentro do ViewBag ou ViewData realizando um Cast.
Qualquer avisa ai..
http://fparmezani.wordpress.com- Sugerido como Resposta Fernando Parmezani segunda-feira, 5 de dezembro de 2011 15:04
- Marcado como Resposta Jose Luiz Borges segunda-feira, 5 de dezembro de 2011 16:27
-
Boa tarde amigos,
Consegui resolver o que eu precisava, com a ajuda de vcs é claro.
View:
@Html.Action("Teste","Home") @Html.Action("Index","Abc") <img src='/Home/ChartBar' />
Estou trazendo dentro da mesma View dois resultados de tabelas diferentes@html.action(actionName, ControllerName)
Ainda tem o esquema da PartialView que também resolveria meu problema, mas o codigo acima ja me ajudou....
a img é referente ao grafico postado no primeiro post desta thead
Obrigado a todos que contribuiram com este post.
Isco Sistemas José Luiz Borges- Marcado como Resposta Jose Luiz Borges segunda-feira, 5 de dezembro de 2011 16:27
Todas as Respostas
-
Só sei responder uma das suas dúvidas.
Seguinte, quando numa view eu quero pegar dados de outro controller normalmente eu uso ajax:
$.ajax({ url: controler/action, data: parametros, success: success, dataType: dataType });
:D
Qualquer resposta útil ou solução deve ser marcada. Assim ajudamos a quem tem o mesmo problema a achar a resposta.- Marcado como Resposta Jose Luiz Borges segunda-feira, 5 de dezembro de 2011 16:27
-
Boa tarde
obrigado por responder....
Nossa ja vai me ajudar um monte
$.ajax({
url: Task/Index,
data: parametros,
success: success,
dataType: dataType
});Mas como vou postar o resultado dentro de uma WebGrid, ou fazer um for para postar o resultado ?
Obrigado
Isco Sistemas José Luiz Borges- Marcado como Resposta Jose Luiz Borges segunda-feira, 5 de dezembro de 2011 16:27
-
Olá
Não sei bem como levar o objeto graph pois ainda não trabalhei com ele,
Mas talves isto ajude,
No exemplo acima na chamda INDEX, voce não esta retornando nenhum dados para a view, veja abaixo
public ActionResult Index() { return View(); }
a ideia é que voce pode retornar um dado dentro da chamada por exemplo:
public ActionResult Index()
{
Ilist<pessoas> pessoas = new Ilist<pessoas>;
return View(pessoas); }
outra forma: ( é uma tentativa, ok )
public ActionResult Index() {
Chart chart = new Chart(width: 600, height: 400)
.AddTitle("Gráfico em Barra") .AddSeries(name: "ChartBar", chartType: "bar", xValue: new[] { "Carro Esportivo", "Carro Utilitário", "Caminhonete", "Carro Passeio" },
yValues: new[] { 10, 5, 7, 25 }).Write();
ViewData['Graph'] = chart; return View(); }
Desta forma voce pode tentar fazer uma chamada dentro da sua view.
<h2>
@=(Chart)ViewData['chart'];
</h2>
Tenta ai Grande.... qualquer coisa avisa,
http://fparmezani.wordpress.com- Marcado como Resposta Jose Luiz Borges segunda-feira, 5 de dezembro de 2011 16:27
-
Opa obrigado por responder...
Então o gráfico eu consegui neste final de semana, com exatamente o codigo acima...
Meu maior problema é retornar dentro da View Index mais que uma consulta ao banco de dados, por exemplo nesta página o usuário
teria:
As tarefas designadas para ele
As Mensagens postadas
A carteira de título de seus clientes
todas vindo de tabelas distintas do banco de dados, esta é a pior parte.... Como estou estudando o MVC não consigo passar desta barreira, o projeto já existe em WebForms......
O que estamos fazendo em paralelo é reescrevendo em WebForms, usando o padrão MVC, mas gostaria de utilizar o MVC 3 pela facilidade de criação de telas....
Isco Sistemas José Luiz Borges- Sugerido como Resposta Fernando Parmezani segunda-feira, 5 de dezembro de 2011 15:04
- Marcado como Resposta Jose Luiz Borges segunda-feira, 5 de dezembro de 2011 16:27
-
Opa José,
Então se entendi seu problema, voce precisa de várias "listagens" papara popular uma view correto?/
Então uma boa opção é:
1. Crie as listagens dentro das Models.
2. Na chamada da View utilize ViewData["lista1"] = recebe os dados, ou no caso do MVC 3 voce tem o VIEWBAg. (use e abuse)
3. Dentro das View recupere os dados dentro do ViewBag ou ViewData realizando um Cast.
Qualquer avisa ai..
http://fparmezani.wordpress.com- Sugerido como Resposta Fernando Parmezani segunda-feira, 5 de dezembro de 2011 15:04
- Marcado como Resposta Jose Luiz Borges segunda-feira, 5 de dezembro de 2011 16:27
-
Boa tarde amigos,
Consegui resolver o que eu precisava, com a ajuda de vcs é claro.
View:
@Html.Action("Teste","Home") @Html.Action("Index","Abc") <img src='/Home/ChartBar' />
Estou trazendo dentro da mesma View dois resultados de tabelas diferentes@html.action(actionName, ControllerName)
Ainda tem o esquema da PartialView que também resolveria meu problema, mas o codigo acima ja me ajudou....
a img é referente ao grafico postado no primeiro post desta thead
Obrigado a todos que contribuiram com este post.
Isco Sistemas José Luiz Borges- Marcado como Resposta Jose Luiz Borges segunda-feira, 5 de dezembro de 2011 16:27