Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

372
Vistas
devolver Vistas por el método PartialView

Quiero usar ajax para evitar actualizar mis páginas y para esto quiero devolver Vistas por el método PartialView del controlador en la llamada ajax.

la pregunta es:

  1. ¿Es una buena manera de devolver una View como Vista PartialView ?
  2. ¿Cómo debo configurar la ruta de las vistas en el método PartialView en Controller ?

Por ejemplo, para la vista _Index en Views/BasicInfo/_Index path, intento PartialView("~/Views/BasicInfo/_Index"); , PartialView("~/Views/BasicInfo/_Index.chtml"); , PartialView("BasicInfo/_Index"); , y obtiene el error de no encontrar la vista

EDITAR

Cómo se especificó el nombre de la vista en el método PartialView, si la vista está en una carpeta fuera de la carpeta compartida y fuera de la carpeta de vista relacionada. Por ejemplo, Mi controlador se llama controlador1 y mi Vista está en esta ruta Views/BasicInfo/_Index ?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

deberías tener esto

  • micontrolador

    • Resultado de la acción -> Índice
    • Resultado de la acción -> Índice parcial
  • Puntos de vista

    • Mi
      • Index.cshtml (Ver)
      • IndexPartial.cshtml (Vista parcial)

Donde:

Index.cshtml como vista completa habrá representado la vista parcial con el modelo pasado (¿por qué? Para evitar la duplicación de código)

 @model YourModelType @{ ViewBag.Title = "View Index"; Layout = "~/Views/Shared/_Layout.cshtml"; } @Html.Partial("IndexPartial", Model)

IndexPartial.cshtml es la vista parcial, algo así como

 @model YourModelType <h2>Some Title</h2> <div> <h4>YourModel</h4> <hr /> <dl class="dl-horizontal"> <dt> @Html.DisplayNameFor(model => model.Property1) </dt> <dd> @Html.DisplayFor(model => model.Property1) </dd> <dt> @Html.DisplayNameFor(model => model.Property2) </dt> <dd> @Html.DisplayFor(model => model.Property2) </dd> </dl>

Ahora, cuando desee la vista completa, use MyController/Index y cuando desee la vista parcial, puede obtenerla con MyController/IndexPartial.

O puede usar el parámetro en su acción para especificar la salida:

 public ActionResult GetMyView(bool? partial) { var model = something; if (partial != null && partial) { return PartialView("MyViewPartial", model) } return View("MyView", model); }

llamar a parcial = yourHost/controller/GetMyView?partial=true

Ahora volviendo a su pregunta, sí, puede devolver la Vista parcial como Vista y viceversa. Pero enfrentará problemas al agregar html a las páginas a través de ajax (html incompleto o sobrecargado).

over 4 years ago · Santiago Trujillo Denunciar

0

puedes usar :

 public PartialViewResult ActionMethodName() { return PartialView("_Index.chtml"); }

O

 public ActionResult ActionMethodName() { return PartialView("_Index.chtml"); }
over 4 years ago · Santiago Trujillo Denunciar

0

  1. No hay limitación y no se considera mala práctica.

  2. Tiene un error tipográfico en la PartialView("~/Views/BasicInfo/_Index.chtml") de su pregunta.

    Debe escribir return PartialView("~/Views/BasicInfo/_Index.cshtml")

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda