у меня есть этот частичный вид, который выглядит следующим образом:Уплотненный PartialView не освежающий
@model ComPost.Core.CommandsAndQueries.Contract.DataContract.FinalizeScreenDTO
<div class="row">
<p>
<table id="ProductTable">
<tr><td>Wijzig Product</td><td><input type="checkbox" id="OverrideCheckox" /></td></tr>
<tr><td>Product</td><td>@Html.DropDownListFor(m => m.DepositProductId , new SelectList(Model.DepositProducts, "DepositProductId", "DepositProductName"),new{id="DepositProductSelect", disabled="disabled", style = "width: 500px;", onchange="CallChangefunc();"})</td></tr>
<tr><td>Reden wijziging</td><td><textarea disabled ="disabled" id="OverrideReason" class="CommentText" cols="150" rows="5">@Model.OverrideReason</textarea></td></tr>
</table>
</p>
@{
Html.RenderAction("DepositProductOrder", "Deposit", new { depositid = @Model.DepositId, depositproductid = @Model.DepositProductId });
}
<p>
<input type="submit" id="FinalizeButton" class="btn btn-default" Visible="false" data-url="@Url.Action("FinalizeDeposit", "Deposit")" data-overview="@Url.Action("Index", "Deposit")" value="Finalize" />
</p>
</div>
В этом PartialView у меня есть еще один PartialView, которые должны быть оказаны этой линией:
@{
Html.RenderAction("DepositProductOrder", "Deposit", new { depositid = @Model.DepositId, depositproductid = @Model.DepositProductId });
}
вложенной PartialView содержит таблицу для отображения некоторой информации. Когда я выбираю новое значение в DropDownList, я перехожу к контроллеру и выполняю свое действие. Это прекрасно работает. Результат затем передается моему вложенному частичному просмотру.
Но результат не обновляется. На моем экране по-прежнему отображается информация, которая была получена, когда я впервые попал на страницу.
CallChangefunc выглядит следующим образом
function CallChangefunc()
{
//TODO : call the post for a Finalize.
var el = document.getElementById('DepositProductSelect');
var url = "/Deposit/DepositProductOrder";
var depositProductId = el.options[el.selectedIndex].value;
var depositId = $("#MainTabs").data("depositid");
$.ajax({
url: url,
type: 'POST',
data: {
depositId: depositId,
depositProductId: depositProductId,
},
dataType: 'html',
success: function (result) { },
error: function (x, t, e) { }
});
}
Это код DepositProductOrder-действия на мой контроллер:
public PartialViewResult DepositProductOrder(int depositid, int depositproductid)
{
DepositProductOrderDTO depositProductOrderDTO = this.QueriesServiceAgent.Call(s => s.GetDepositProductOrder(depositid, depositproductid));
return PartialView(depositProductOrderDTO);
}
Что мне не хватает?
просто ли ваш 'действие DepositProductOrder' бьет или нет ??? –
@ Kartikeya: The DepositProductOrder бьет. Так что это нормально. –
убедитесь, что ваш запрос ajax возвращает правильный html и его успешный обратный вызов. Просто поставьте предупреждение и убедитесь в успехе и посмотрите, что там будет. –