我有搜索发生的视图,然后我将所有内容传递给我的控制器,控制器又搜索并返回部分视图。
当我调试视图时,我可以看到我传递的模型是正确的,但浏览器中没有显示任何内容?
可能的解决方案
我是否需要在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 CALL
$('#ajaxsearchbutton').live("click", function (e) {
var form = {};
form = $("#theform").serialize()
$.post("Search", form, function (data) {
alert("I'm Callbacked");
});
});
CONTROLLER
return PartialView("Result", _sr);
答案 0 :(得分: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");
});
});