2011-01-08 146 views
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> 

這是我的遙控器側

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

回答

0
<input type="submit"/> 

按鈕類型是導致頁面回發

改成了<input type="button"及其工作確定

1

我認爲你必須在「腳本」參數添加到您的$不用彷徨的jQuery呼叫。

所以你必須將其更改爲

 

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

     }, "script"); 
 
+0

的問題是與後控制被渲染按鈕類型=「提交」按鈕所致要回發的頁面...只是將其更改爲「按鈕」...即時回覆的Tnx懲罰:) – Rafay 2011-01-08 06:57:04

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); 
    } 

希望這會有所幫助。