2011-01-08 12 views
1

クリックイベントで部分的な表示をしようとしています...リクエストがコントローラに正常にポストされていますが、ビューで受信されていません。 。下記の私は、あなたの$に.getのjQueryのコールに「スクリプト」パラメータを追加するために持っていると思うこの私のコントローラ側部分表示のレンダリングの問題

ViewData["weather"] = weather; 
      ViewData["searchText"] = searchText;       
      return PartialView("PartialWeather"); 

答えて

0
<input type="submit"/> 

ボタンタイプが戻っ

<input type="button"にそれを変更し、その作業OK

1

<script type="text/javascript"> 

    function postForm() {  

     if ($('#searchresultsweather').is(':parent')) { 
        alert("parent"); 
        var child = $('#searchresultsweather').children().attr("id"); 
        alert(child); 
        $('#' + child).remove(); 
     }  
     alert("about to post form"); 
     var searchText = $('#weathersearch').val(); 
     alert(searchText); 

     $.get('<%=Url.Action("SearchWeatherLocation?searchText='+searchText+'","Weather")%>', null, 
     function(data) { 
      alert("call back"); 
      $("div#searchresultsweather").append(data); 

     }); 



    } 


</script> 

<form id="feedForm"> 
    <fieldset> 
    <p> 
     <input type="text" value="" maxlength="60" id="weathersearch" name="search" class="text"/> 
     <input type="submit" value="Search" class="submitbut" id="submitbutton_search" onclick="postForm();"/></p> 
     <div class="clear"></div> 
    </fieldset> 
    <div id="searchresultsweather"></div> 
    </form> 

...私のビューとコントローラです。

だから、あなたはあなたのアクションでは、次の操作を行うことができ、部分ビューを返した場合

 

$.get('<%=Url.Action("SearchWeatherLocation?searchText='+searchText+'","Weather")%>', null, 
     function(data) { 
      alert("call back"); 
      $("div#searchresultsweather").append(data); 

     }, "script"); 
 
+0

問題はコントロールがボタンの種類は=「提出」レンダリングされた後にボタンを押していたページがポストさせた原因ポストバックするページ...ちょうど "ボタン"に変更...プロンプトの返信のためのTnx punit :) – Rafay

0

にそれを変更する必要があります...

マークアップ/スクリプト

<script type="text/javascript"> 

    function getpartial() { 
     var url = "<%: Url.Action("MyAction") %>"; 
     $.ajax({ 
      url: url, 
      success: function (data) { 
       $('#result').html(data); 
      } 
     }); 

    return false; // stops the form submitting (if in a form) 
    } 

</script> 

<input type="button" onclick="getpartial();" title="Get partial" /> 

<div id="result"></div> 

コントローラの動作

public ActionResult MyAction() 
    { 
     // todo: get data 
     ViewData["searchText"] = searchText;       
     return PartialView("PartialWeather", weather); 
    } 

希望すると便利です。

関連する問題