Справочная информация:
Я работаю над приложением ASP.NET MVC, которое имеет 3 части (на основе движка Razor) на главной странице. Первый фрагмент содержит список критериев поиска, которые заполняет пользователь. Второй фрагмент должен отображать список ParameterParts на основе переданных данных. Предполагается, что третья часть отображает список спецификаций на основе переданных данных. Мне нужно вызывать методы в контроллере для заполнения моего 2-го и 3-го частичных представлений.
Выпуск:
Код родительского представления (index.cshtml) для всех трех частичных элементов
<div class="prepend-top span-24 last" id="searchPage">
<div class="span-24 last">
@Html.Partial("_Search")
</div>
<div class="span-24 last" id="parameterResults">
@Html.Partial("_ParameterParts")
</div>
<div class="span-24 last" id="searchSpecResults">
@Html.Partial("_Specifications")
</div>
</div>
Код для первого частичного (_Search.cshtml):
// Post the object to the server using jQuery
$.ajax({
url: '@Url.Action("ParameterParts")',
type: 'POST',
dataType: 'html',
data: dataToPass,
error: function (data) { alert('Something Went Wrong'); },
contentType: 'application/json; charset=utf-8',
success: function (data) {
alert('Success P');
$("parameterResults").html(data);
}
});
Этот код правильно вызывает метод ParameterParts с параметром dataToPass.
Вот код, который я использую для метода контроллера:
[HttpPost]
public ActionResult ParameterParts(CriteriaViewModel vm)
{
List<ParameterPart> parameterParts = new List<ParameterPart>();
//Some logic to populate parameterParts using the passed in object
return PartialView("_ParameterParts", parameterParts);
}
Код для 2-й части:
@model IEnumerable<SmartPlex.Web.SmartPlex.ODataService.ParameterPart>
<table>
<tr>
<th>
Part Number
</th>
<th>
Description
</th>
</tr>
@if (Model != null)
{
foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.PartNumber)
</td>
<td>
@Html.DisplayFor(modelItem => item.Description)
</td>
</tr>
}
}
</table>
Я не включаю 3-й частичный, поскольку он такой же, как 2-й. Как я могу обновить свои партиалы, используя вышеуказанный метод?