En mi web estoy generando un mapa de bits de forma dinámica y que necesita para ser prestados de acuerdo a los navegadores de la anchura y la altura, así que no hay desbordamiento en la página.

He creado con éxito una imagen y la hacía, pero no sé cómo conseguir que los navegadores de la anchura y la altura y pasar a la acción para que la imagen de render

Vista:

@{
ViewBag.Title = "Index";
}
<h2>Home</h2>
<br />
<img src="@Url.Action("Image", new { height = , width = })" alt="image" usemap="#clickMap" height="" width="" />

Controlador:

public ActionResult Image(int width, int height)
{
    MemoryStream stream = new MemoryStream();
    var image = DynamicImages.ImageGeneration.GetWorkflow(width, height);

    image.Save(stream, ImageFormat.Png);

    return File(stream.ToArray(), "image/png");
}

He puesto un jQuery función en un archivo llamado Browser.js para obtener la altura de la pantalla, pero no tengo ni idea de cómo hacer referencia a este:

function getWidth() {
    return $(window).width();
}

Alguien puede ayudar?

  • usted entiende que un usuario puede cambiar el tamaño de su navegador .. a la derecha ? (y, a continuación, los valores codificados no será válido..). Mejor usar CSS para cambiar el tamaño de la imagen..
  • Si el usuario cambia el tamaño del navegador, la imagen tendrá que ser prestados, que puedo hacer en un ajaz llamada. El uso de CSS no funcionará debido a las asignaciones que también será creado en tiempo de ejecución
InformationsquelleAutor Andy Clark | 2012-04-18

3 Comentarios

  1. 1

    Podría intentar algo como lo siguiente:

    $("img-selector").attr("src", "@Url.Action("Image")" + "?height=" + getHeight() 
        + "&width=" + getWidth());
    • La llamada a la Acción debe pasar de 2 parámetros como se muestra en la cuestión del Método de acción de la Imagen(int ancho , int alto)
  2. 1

    Me las he arreglado para conseguir este trabajo.
    En lugar de agregar un elemento de la imagen a la página y cambiar la fuente simplemente he generado una etiqueta de imagen en una función y añadió que a un div en la página. como para la llamada a la acción me codificado la url de la llamada (que es lo que @Url.Acción () ¿de todos modos) y esto funciona
    Aquí está mi código:

    @{
    ViewBag.Title = "Index";
    }
    <h2>Home</h2>
    <br />
    <script type="text/javascript">
    
        $(document).ready(function () {
            renderWorkflow();
        });
    
        function renderWorkflow() {
            var width = $(window).width();
            var height = $(window).height();
            var imageLink = "<img id=\"workflow\" src=\"/Home/WorkflowImage?width=" + width + "&height=" + height + "\" alt=\"Workflow Image\" />";
    
            $("#workflowImage").html(imageLink);
        }
    
    </script>
    <div id="workflowImage">
        <p>Java script must be enabled in order to render the workflow</p>
    </div>
    <map id="clickMap" name="clickMap">
    </map>
    • Toda la ayuda que anteriormente era útil y me guió en la dirección correcta. Yo no podía conseguir los ejemplos proporcionados en las respuestas anteriores de trabajo
  3. 0

    usted puede hacer una petición ajax para ello

    <script type="text/javascript">
      var Height = //get height
      var Width = //get width
    
     $.get('@Url.Action("Image", "Controller")', { width: width, height: Height}, function (data) {              
    
            });
    </script>

Dejar respuesta

Please enter your comment!
Please enter your name here