簡體   English   中英

如何在運行服務器代碼MVC2之前運行javascript

[英]How to run a javascript before server code is run MVC2

好的,事情就是這樣,

我有一個視圖,它呈現一個圖表(.net圖表),並且我希望該圖表的大小與Web瀏覽器窗口的大小相同(瀏覽器始終為IE 9)。

我試過幾個例子,但沒有一個適合我。 由於圖表以圖像形式呈現,因此我需要在呈現圖表之前了解瀏覽器的大小(這發生在服務器端)。

我的意圖是人們可以通過通過URL發送參數來創建圖表,因此不能選擇從另一個View或控制器獲取這些值。

有沒有辦法做到這一點? 這是查看代碼

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Charts.Master" Inherits="System.Web.Mvc.ViewPage<KpiDataBase.Models.ChartModel>" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

<%if (Model.Series != null)
{         
System.Web.UI.DataVisualization.Charting.Chart Chart1 = new System.Web.UI.DataVisualization.Charting.Chart();

Chart1.Width = 1400; -> this are the values that need to be dynamic 
Chart1.Height = 1100;-> this are the values that need to be dynamic 

 ... code for generating the chart....

// Render chart control
Chart1.Page = this;
HtmlTextWriter writer2 = new HtmlTextWriter(Page.Response.Output);
Chart1.RenderControl(writer2);                                 
}%>  
</asp:Content>

任何幫助將不勝感激。 通過在互聯網上搜索,我發現只能通過JavaScript才能實現。 如果可以運行此腳本:

    <script type="text/javascript">

    function getWidth() {
        var width = $(window).width();}
    return width, height ;
 </script>

 <script type="text/javascript">

    function getHeigth() {
        var height = $(window).height();}
    return height ;
  </script>

然后使用這些值來呈現我的圖表,那將很棒。

最后,我使用Ajax執行此操作。

<script type="text/javascript">
$(document).ready(function () {
    var width = screen.width;
    var height = screen.height;
    $.ajax({
        type: "GET",
        url: "/Charts/Chart",
        data: { 'width': width, 'height': height },
        success: function () {
        }
    });
}); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM