es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Enviar a otra URL en las páginas ASP.NET RAZOR.

Necesito ayuda, necesito enviar un formulario html que contiene campos ocultos a otra URL. Los valores de los campos ocultos, algunos de ellos son estáticos y otros son dinámicos (desde el código backend) en el formulario web. Ahora necesito hacer esto desde una página Razor de asp.net, con el código que tengo, solo se detecta el valor de un campo oculto. Aprecio su ayuda… Además, si puedo saber cómo enviarlo a la otra URL!

A continuación está mi código:

Clase modelo: jcc

    [BindProperty]
    public string Version { get; set; }

    [BindProperty]
    public string MerID { get; set; }

    [BindProperty]
    public string AcqID { get; set; }

sendto.cshtml

    @page
    @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
    @model saderlexstore.Pages.Admin.sendtoJCCModel
    @{
        ViewData["Title"] = "JCC Required Info";
    }
<!DOCTYPE html>
<html lang="en">

<head>
    <script>

        function sss() {

            document.forms["paymentForm"].submit();

        }
    </script>
</head>

<body>
    <form method="post" name="paymentForm" id="paymentForm">


        <input type="text" name="Version" id="Version" asp-for="jccgetter.Version">

        <br>
        <input type="text" name="MerID" id="MerID" asp-for="jccgetter.MerID">
        <br>

        <input type="text" name="AcqID" id="AcqID" asp-for="jccgetter.AcqID">

    </form>
</body>

</html>

sendto.cshtml.cs

    [BindProperty]
    public JCC jccgetter { get; set; }

    public void OnGet()
    {
        this.jccgetter = new JCC { Version = "1.0.0" };
        this.jccgetter = new JCC { MerID = "0011223344" };
        this.jccgetter = new JCC { AcqID = "402971" };

    }

    public void OnPostSubmit()
    {

       JCC jcc = this.jccgetter;
    }
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para enviar el formulario con los campos ocultos, puedes agregar el siguiente código HTML a tu archivo sendto.cshtml:

    <form method="post" action="https://example.com">
        <!-- Campos ocultos estáticos -->
        <input type="hidden" name="StaticField1" value="StaticValue1">
        <input type="hidden" name="StaticField2" value="StaticValue2">
        <!-- Campos ocultos dinámicos -->
        <input type="hidden" name="DynamicField1" value="@Model.DynamicValue1">
        <input type="hidden" name="DynamicField2" value="@Model.DynamicValue2">
        <!-- Botón de envío -->
        <button type="submit">Enviar</button>
    </form>
    

    En este código, puedes reemplazar “https://example.com” con la URL a la que deseas enviar el formulario. Los campos ocultos estáticos se agregan utilizando la etiqueta “input” con el atributo “type” establecido en “hidden”, y los atributos “name” y “value” configurados con el nombre y el valor específico que deseas utilizar. Los campos ocultos dinámicos se agregan de manera similar, pero en lugar de establecer el valor directamente en el HTML, utilizas el símbolo “@” seguido del nombre de la propiedad en tu modelo.

    Para asegurarte de que todos los campos ocultos se incluyan en los datos del formulario cuando lo envíes, debes asegurarte de que todos estén incluidos en el modelo de enlace. En tu código, ya has anotado las propiedades con el atributo “[BindProperty]”, por lo que deberían estar incluidas. Sin embargo, en tu método “OnGet”, estás sobrescribiendo la misma propiedad varias veces con valores diferentes, lo que significa que solo se utilizará el último valor. En cambio, deberías establecer todos los valores en la misma instancia de la clase JCC:

    public void OnGet()
    {
        this.jccgetter = new JCC
        {
            Version = "1.0.0",
            MerID = "0011223344",
            AcqID = "402971"
        };
    }
    

    Con estos cambios, tu formulario debería incluir todos los campos ocultos con los valores correctos, y el envío del formulario debería dirigirse a la URL especificada.

Comments are closed.