2012-05-13 15 views
0

これはウェブプログラミングに関する初心者の質問です。基本的に私は、Google Map APIを使ってデフォルトのアドレスを示すページを持っています。 "221B Baker Street、London、United Kingdom"を見てもうまく動作しますが、住所を書いてからそれを見たいテキストボックスがあります。それはCSHTML-ページだと私はかみそりの構文javascript変数を設定するか、かみそりの構文で関数を呼び出すにはどうすればいいですか?

@{if(IsPost) { do something }} 

を知っているので、基本的に私は、テキストボックスからRequest.Form["FindAddress"];を取ると、ユーザーが対処するようにjavascriptのmyAddressという変数に設定したいの代わりに表示されます。しかし、私はそれをインラインコーディングする方法を知らない。 IsPost-conditionをjavascript関数の-tagの中に置くと、構文エラーが出てきます。ここに完全なページがあります

<!DOCTYPE html> 

<html> 

<head id="head"> 
<title></title> 
<link href="@Server.MapPath("~/Styles/Site.css")" rel="stylesheet" type="text/css" /> 
</head> 
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=<YOUR_API_KEY>&sensor=false" 
     type="text/javascript"></script> 
<script type="text/javascript"> 

    var myAddress = "221B Baker Street, London, United Kingdom"; // how do I overwrite this if it is (isPost)? 


    var map; 
    var geocoder; 
    function initialize() { 
     if (GBrowserIsCompatible()) { 
      map = new GMap2(document.getElementById("map")); 
      map.setCenter(new GLatLng(51.5, -0.1), 10); 
      map.setUIToDefault(); 

      geocoder = new GClientGeocoder();     
      showAddress(myAddress); 
     } 
    } 
    function showAddress(address) { 
     geocoder.getLatLng(address, function (point) { if (!point) { alert(address + " not found"); } else { map.setCenter(point, 15); var marker = new GMarker(point); map.addOverlay(marker); marker.openInfoWindow(address); } }); 
    } 
</script> 

<body onload="initialize()" onunload="GUnload()"> 
    <form id="form1" runat="server"> 
     <div> 
      <input type="text" id="FindAddress" name="FindAddress" /> 
     </div> 
     <div id="map" style="width: 500px; height: 500px"></div> 
    </form> 
</body> 

</html> 

答えて

0

私は以下のコードを試していませんが、うまくいくと思います。基本的に私は条件付きチェックロジックをスクリプトブロックの外に置き、その結果を変数に格納し、それはjavascriptで参照されます。

@{ 
    var address = "221B Baker Street, London, United Kingdom"; 

    if (Request.HttpMethod == "POST") 
    { 
    address = Request.Form["FindAddress"]; 
    } 
} 

    <script type="text/javascript"> 

    var myAddress = "@address"; // how do I overwrite this if it is (isPost)? 


    var map; 
    var geocoder; 
    function initialize() { 
     if (GBrowserIsCompatible()) { 
     map = new GMap2(document.getElementById("map")); 
     map.setCenter(new GLatLng(51.5, -0.1), 10); 
     map.setUIToDefault(); 

     geocoder = new GClientGeocoder(); 
     showAddress(myAddress); 
     } 
    } 
    function showAddress(address) { 
     geocoder.getLatLng(address, function (point) { if (!point) { alert(address + " not found"); } else { map.setCenter(point, 15); var marker = new GMarker(point); map.addOverlay(marker); marker.openInfoWindow(address); } }); 
    } 
    </script> 
関連する問題