0

我有一个搜索发生的视图,然后我将所有内容传递给我的控制器,控制器依次搜索并返回一个局部视图。

当我调试视图时,我可以看到我传递的模型是正确的,但浏览器中没有显示任何内容?

可能的解决方案
由于两个视图都已呈现,我是否需要在 ajax 回调函数中附加所有内容?

一切都被称为模型我传递的局部视图有结果,当调试“结果”视图时它会遍历模型,一切看起来都很好。但是浏览器什么也没显示?好像它没有相应地更新dom?!

这是我的代码!

主视图

<div style="width: 700px; margin-top: 30px;">
<div style="float: left; width: 200px;">
   <table id="certificate">
     <thead> Certificates</thead>
     <tbody>

     </tbody>
 </table>
</div>
<div style="float: left; width: 200px;">
  <table id="courses">
      <thead> Courses</thead>
       <tbody>

      </tbody>
 </table>
</div>
<div style="float: left; width: 200px;">
  <table id="prevexp">
       <thead> Previous Exp.</thead>
      <tbody>

      </tbody>
 </table>
</div>
<div style="float: left; width: 100px;">
  <table id="country">
       <thead>Countries</thead>
      <tbody>

      </tbody>
 </table>

@Html.Partial("Result", new MvcApplication2.Models.ViewModel.Search.SearchResult())
</div>

结果视图 @model MvcApplication2.Models.ViewModel.Search.SearchResult

@{
 ViewBag.Title = "Result";
 }

<h2>Result</h2>
<table>
@foreach (var item in Model.SearchResults) {

<tr>
    <td> <b>
       @item.Value.FirstName  @item.Value.SurName
        </b>
    </td>

</tr>


foreach (var ic in item.Value.Certificates)
{  <tr>
    <td>
    @ic.CertificateName --  @ic.SearchType
    </td>

     </tr>
}


}
</table>

AJAX 调用

 $('#ajaxsearchbutton').live("click", function (e) {
    var form = {};
    form = $("#theform").serialize()
    $.post("Search", form, function (data) {
        alert("I'm Callbacked");
    });
 });

控制器

  return PartialView("Result", _sr);
4

1 回答 1

0

解决了!

我需要从局部视图中附加数据,我这样做了

首先,我给局部视图表一个 ID。

<h2>Result</h2>
//UPDATED ID HERE!!!
<table ="tabletoupdate">
@foreach (var item in Model.SearchResults) {

<tr>
<td> <b>
   @item.Value.FirstName  @item.Value.SurName
    </b>
</td>

</tr>


foreach (var ic in item.Value.Certificates)
{  <tr>
<td>
@ic.CertificateName --  @ic.SearchType
</td>

 </tr>
}


}

JAVASCRIPT

 $('#ajaxsearchbutton').live("click", function (e) {
  var form = {};
  form = $("#theform").serialize()
  $.post("Search", form, function (data) {

  //HERE I ADDED THE ID OF THE TABLE AND THE DATA THAT WAS RETURNED   

    $('#tabletoupdate').html(data);

    alert("I'm Callbacked");
   });
  });
于 2013-07-06T21:43:17.290 回答