ASP.NET - Limpiar vista en asp.net MVC

 
Vista:
Imágen de perfil de Vladimir
Val: 2
Ha disminuido su posición en 2 puestos en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Limpiar vista en asp.net MVC

Publicado por Vladimir (1 intervención) el 21/04/2019 15:37:08
Hola buenos días! y feliz Domingo de resurrección para todas y todos, estoy aprendion ASP.NET MVC he realizado diferentes aplicaciones que he visto en paginas de Youtube, recientemente termine uno, pero a pesar de que realiza casi todo bien, quedo con un detalle que no logre solventar por ahora, cuando le doy al boton de Create(que guarda el maestro y el detalle) el proceso de almacenado en las diferentes tablas se realiza exitosamente, pero la pagina no se refresca, osea la pantalla no queda limpia, la grilla de abajo donde estan los detalles no se limpia y los controles de arriba queda con la información: les coloco el el codigo del controlado el Post:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[HttpPost]
public ActionResult NewOrder(OrderView orderview)
{
    orderview = Session["OrderView"] as OrderView;
    int idcustomer = int.Parse(Request["Customerid"]);
    DateTime dateorder = Convert.ToDateTime(Request["Customer.Orderdate"]);
    Orders neworder = new Orders
        {
        Customerid=idcustomer,
        Orderdate=dateorder
        };
    db.Orders.Add(neworder);
    db.SaveChanges();
 
    int lastordeid = db.Orders.ToList().Select(o => o.Orderid).Max();
    foreach (ProductOrder item in orderview.Products)
    {
        var detail = new Orderdetail()
        {
            orderid=lastordeid,
            productid=item.Productid,
            quantity=item.quantity,
            unitprice=item.unitprice
        };
        db.Orderdetails.Add(detail);
    }
    db.SaveChanges();
    orderview = Session["OrderView"] as OrderView;
    var list = db.Customers.ToList();
    ViewBag.Customerid = new SelectList(list, "Customerid", "CompanyName");
    return View(orderview);
}

espero me puedan ayudar, gracias!

pd: les publico los video de youtube del ejercicio que realice


Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Limpiar vista en asp.net MVC

Publicado por miguelZ (17 intervenciones) el 22/04/2019 16:15:22
Recuerda tus datos se encuentran en el modelo que estas regresando en la vista,
return View(orderview); asi que los datos que no quieras devolver como parte de la informacion
deben ser eliminados del objeto OrderView .


saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo Patricio Castillo
Val: 141
Oro
Ha mantenido su posición en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Limpiar vista en asp.net MVC

Después de guardar debes invocar el actionResult Index, que sería lo normal, pero si quieres seguir ingresando nueva información sin tener que estar pulsando Create a cada rato, debes llamr al Create del Get, que es el que te trae la vista incial y vacía y no devolver la vista del post, que es la que tiene el modelo.

Saludos cordiales,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Leonardo Daniel A.
Val: 180
Oro
Ha mantenido su posición en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Limpiar vista en asp.net MVC

Publicado por Leonardo Daniel A. (55 intervenciones) el 22/04/2019 18:48:18
Hola... pues decirte que es mala practica hacer todo en el controlador o hacer todo en el modelo... te recomiendo investigar y estudiar sobre n-capas...

Capa 1 - conexion a la B.D.
Capa 2 - Entidades o modelos
Capa 3 - Logica de negocio ( donde manejas los datos, leer, agregar, actualizar, borrar )
Capa 4 - Presentacion ( tu proyecto web )

1ro se crea una solucion vacia con el nombre de tu proyecto
2do. haces click sobre el nombre de tu solucion con el boton derecho del mouse y le das agregar nuevo proyecto ( de clases, para la conexion, en mi caso "ConexionDB", luego agrero otra biblioteca de clases llamada "entidades", y otra llamada "Logica Negocio", luego agrego un proyecto nuevo a la solucion, un proyecto WEB MVC)

- En la biblioteca de clase CONEXIONDB...creas tu clase de conexion a la b.d.
- En la biblioteca de Entidades, agregas todos tus modelos como clases
- En la biblioteca de Logica de Negocio agregas tus clases de logica, ejemplo: ClientesLogica.cs y ahi pondras los metodos a utilizar con tus clases de datos ( debes de agregar las referencias del proyecto de ConexionDB y Entidades para que puedas utilizarlas...
- En tu proyecto Web deberas agregar las referencias de tus proyectos de Entidades y Logica para que puedas llamarlas desde los controladores....

POR CIERTO: yo no uso Entity Framework ni ADO por eso no lo vas a ver aqui... utilizo un microORM que se llama NPOCO

este es un pequeño codigo de mi controlador de clientes

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
using System.Web.Mvc;
using Utilerias;
using LogicaNegocio;
using Entidades;
using Kendo.Mvc.UI;
using Kendo.Mvc.Extensions;
 
namespace WebApp.Controllers
{
    public class ClientesController : Controller
    {
        // GET: Clientes
        public ActionResult Index()
        {
            ViewBag.Title = "Customers Catalog";
            return View();
        }
 
        public JsonResult Get([DataSourceRequest] DataSourceRequest request)
        {
            return this.Json(ClientesLN.GetAll().ToDataSourceResult(request));
        }
 
        public ActionResult Registro(int id = 0)
        {
            ViewBag.Title = id == 0 ? "New Customer" : "Edit Customer";
 
            // Esto lo vi en un curso de Udemy ( desarrollar un portafolio personal, te lo recomiendo )
           // es para no crear 2 action result ( agregar y editar, se hace en uno solo )
           // si mi modelo tiene el id = 0 es que es una alta, si es mayor a cero se traen los datos de cliente con ese ID
            return View(
                        id == 0 ? new Cliente() : ClientesLN.GetById(id)
                        );
        }
 
        public ActionResult Guardar(Cliente model)
        {
            if (ModelState.IsValid)
            {
                ClientesLN.Save(model);
                return Redirect("~/Clientes");   // se guarda o actualiza y se recarga la lista de clientes
            }
            else
            {
                return View("~/Views/Clientes/Registro.cshtml", model);
            }
        }
 
        public ActionResult Eliminar(int id = 0)
        {
            ClientesLN.Delete(id);
            return Redirect("~/Clientes");
        }
 
        // get para combobox
        public JsonResult GetCombo()
        {
            return this.Json(ClientesLN.GetAll(), JsonRequestBehavior.AllowGet);
        }
    }
}

y este es un ejemplo de mi Clase de ClientesLN.cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
using ConexionBD;
using Entidades;
using NPoco;
using System;
using System.Collections.Generic;
 
namespace LogicaNegocio
{
    public class ClientesLN
    {
        #region Obtener todos
        public static List<Cliente> GetAll()
        {
            var result = new List<Cliente>();
            try
            {
                using (IDatabase db = DBContext.GetInstance())
                {
                    result = db.Query<Cliente>().OrderBy(x => x.Nombre).ToList();
                }
            }
            catch (Exception ex)
            {
                throw;
            }
 
            return result;
        }
        #endregion
 
        #region Obtener por ID
        public static Cliente GetById(int id)
        {
            var result = new Cliente();
            try
            {
                using (IDatabase db = DBContext.GetInstance())
                {
                    result = db.SingleById<Cliente>(id);
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            return result;
        }
        #endregion
 
        #region Guardar - Actualizar
        public static void Save(Cliente equipo)
        {
            try
            {
                using (IDatabase db = DBContext.GetInstance())
                {
                    db.Save(equipo);
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        #endregion
 
        #region Eliminar por ID
        public static void Delete(int id)
        {
            try
            {
                using (IDatabase db = DBContext.GetInstance())
                {
                    //db.Delete<Cliente>(id);
                    Cliente Cliente = db.SingleById<Cliente>(id);
                    Cliente.Status = "I";
                    db.Update(Cliente);
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        #endregion
 
        #region Verificar que no exista con el mismo nombre
        public static Cliente ExisteCliente(string nombre, int id)
        {
            var result = new Cliente();
            try
            {
                using (IDatabase db = DBContext.GetInstance())
                {
                    result = db.Query<Cliente>()
                                    .Where(x => x.Nombre == nombre && x.Id != id).SingleOrDefault();
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            return result;
        }
        #endregion
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar