Enviar valor desde la vista al controlador ActionResult
Estoy intentando pasar el valor del elemento < li > de una vista parcial a un ActionResult en el controlador y actualizar otra vista parcial con el resultado filtrado en base al valor elegido del < li >.
Mi problema es que actualmente no puedo pasar el valor al controlador.
Este es mi código en la primera vista desde la cual quiero establecer el filtro:
@if (MainFaqCategories != null && MainFaqCategories != null && MainFaqCategories.Count != 0) {
}
Este es mi código Ajax:
var lang = $(“html”).attr(“lang”);
function getChosenCategory(selectedCategory) {
console.log(selectedCategory);
var url = ‘@Url.Action(“GetChosenFaqSubCategory”)’;
$.ajax({
url: url,
type: ‘POST’,
async: true,
data: { TypeCode: selectedCategory},
});
}
Este es mi código en el controlador:
[HttpPost]
public ActionResult GetChosenFaqSubCategory(string TypeCode)
{
string pFilter = “WebFaqCategoryCd=” + TypeCode;
int maxnr = Convert.ToInt32(MaxNbrFaq);
List<ArticleFAQ> subCategories = ServiceWrapper.GetWebFaq(pCoCd, language, loginId, pFilter, out maxnr, out errorText);
return PartialView("GlobalFAQ", subCategories);
}
Como error, tengo en la consola:
POST – http://localhost:4361/en/FAQ/GetChosenFaqSubCategory – 404 (No encontrado)
Cuando elimino la parte del idioma, otro controlador está arrojando error porque el sitio tiene varios idiomas y lo necesito.
davy.ai
Parece que la URL para la acción del controlador no se está generando correctamente. Puede intentar depurar el código verificando el valor de la variable
url
en el código Ajax para asegurarse de que sea la URL correcta.Además, asegúrese de que la acción del controlador esté decorada con el atributo
[HttpPost]
ya que está utilizando una solicitud POST en el código Ajax.Otra posibilidad es que la configuración de enrutamiento no esté configurada correctamente para la acción del controlador. Puede verificar la configuración de enrutamiento en el archivo
RouteConfig.cs
en la carpetaApp_Start
para asegurarse de que la URL de la acción del controlador esté mapeada correctamente.Finalmente, también es posible que el problema esté relacionado con la parte del idioma de la URL. En ese caso, puede intentar pasar el valor del idioma como un parámetro de ruta o un parámetro de cadena de consulta para asegurarse de que se llame a la acción del controlador correcta.