局部视图渲染问题

时间:2011-01-08 05:30:16

标签: jquery asp.net-mvc

即时尝试渲染点击事件的部分视图...请求已成功发布到控制器但未在视图中接收...我从控制器返回部分视图...下面是我的视图和控制器...

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

3 个答案:

答案 0 :(得分:1)

我认为您必须在$ .get jquery调用中添加“script”参数。

所以你必须把它改成


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

         }, "script");

答案 1 :(得分: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);
    }

希望这有帮助。

答案 2 :(得分:0)

<input type="submit"/>

按钮类型导致页面回发

将其更改为<input type="button"并且工作正常