2012-05-13 2 views
0

이것은 웹 프로그래밍에 대한 초보자 질문입니다. 기본적으로 Google지도 API를 사용하여 기본 주소를 보여주는 페이지가 있습니다. "221B Baker Street, London, United Kingdom"을 찾아 보면 멋지게 작동하지만, 주소를 쓰고 그 글을 검색 할 수있는 텍스트 상자가 있습니다. 그것은 cshtml 페이지이고 나는자바 스크립트 변수를 설정하거나 면도기 구문을 사용하여 함수를 호출하려면 어떻게해야합니까?

@{if(IsPost) { do something }} 

그래서 기본적으로 내가 텍스트 상자에서 Request.Form["FindAddress"];을 가지고와 사용자가 대신 표시됩니다 해결할 수 있도록 자바 스크립트 myAddress 변수로 설정하고 싶은 면도기 구문으로 알고있다. 하지만 인라인 코딩을하는 법을 모르겠습니다. Isproxy-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

나는 아래의 코드를 시도하지 않았지만 그것이 효과가 있기를 바랍니다. 기본적으로 조건부 검사 로직을 스크립트 블록 외부에 배치하고 결과를 변수에 저장하고 자바 스크립트에서 참조합니다.

@{ 
    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> 
관련 문제