Нужна помощь с обновлением частичных представлений в MVC из ajax-вызова. На мой взгляд page.cshtmlRefresh partialview
<div id="tblOptions">
@Html.DropDownListFor(model => model.State , new SelectList(), new {id="ddlstate"})
@html.HiddenFor(model => model.optionsId)
@Html.CheckBoxFor(model => model.PrintAddress)
........
</div>
На странице загрузки модели заполнена правильно и все флажки правильно заполнены. Теперь OnChange событие DropDownList, мне нужно заполнить флажками с новыми значениями модели,
У меня есть АЯКС вызов, который возвращает JsonResult
$(document).on('change', '#ddlstate', function() {
$.ajax({
type: 'GET',
url: '/Home/CallonChange',
contentType: 'application/html; charset=utf-8',
data: { PersonCode: '@Model.PersonCode', selectedstate: $('#ddlState').val() },
dataType: 'json',
beforeSend: function (jqXHR, settings) {
$('tblOptions').html('');
}
})
.done(function (data, textStatus, jqXHR) //success callback
{
if (data != null) {
// not loading
$('tblOptions').html(data);
}
else { //display error message
}
})
.fail(function (jqXHR, textStatus, errorThrown) //error callback
{
//display error message
});
});
});
Свое возвращение новую модель в JSON результат, но частичный вид не перезагружается новыми значениями.
В контроллере, у меня есть два контроллера действий, один под названием при загрузке и один призвал SelectionChange
[HttpGet]
public ActionResult CallOnLoad(string PersonCode, string selectedstate = "") {
ModelA a = new ModelA(PersonCode, selectedstate);
return PartialView("Home/page", options);
}
[HttpGet]
public JsonResult CallonChange(string PersonCode, string selectedstate= "")
{
ModelA a = new ModelA(PersonCode, selectedstate);
return Json(options, JsonRequestBehavior.AllowGet);
}
Я не могу перезагрузить частичный вид. Что я делаю не так? Я знаю его довольно глупо где-то, но не могу понять.
Спасибо, кучи.
Спасибо большое за помощь! Оно работает! –