#asp.net-mvc #browser #rendering
#asp.net-mvc #браузер #рендеринг
Вопрос:
У меня очень странная проблема, я пытаюсь отобразить частичный вид с моделью на моей странице.Мое действие контроллера отправляет html в браузер (FireBug показывает мне желаемый HTML-ответ с сервера), но браузер не отображает его! _ViewStart.cshtml
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
_Layout.cshtml
<!DOCTYPE html>
<html>
<head>
//...
</head>
<body>
<div class="container">
@Html.Partial("HeaderPartialView")
<div class="row">
<div class="col-md-3" id="LeftPane" style="border-width:3px">
@Html.Action("LeftPane", "Nav")
</div>
<div class="col-md-9" id="Content">
@RenderBody()
</div>
</div>
@Html.Partial("FooterPartialView")
</div>
</body>
</html>
Действие контроллера вызывается с помощью javascript $.post('/Query/GetUserQuery', { jsonQuery: jsonString });
и просто десериализует json в объект, который я передаю в качестве модели моему общему представлению.
public ActionResult GetUserQuery(string jsonQuery) {
//Deserialization jsonQuery -> result
return PartialView("_ShowData", result);
}
Пожалуйста, помогите мне. Раньше у меня не было проблем с частичными представлениями, похоже, я пропустил что-то важное.
Комментарии:
1. Показанный вами скрипт не добавляет полученную вами часть в DOM (вам нужно сделать это при успешном обратном вызове)
2. Если вы используете ajax. Можете ли вы поделиться кодом?
3. @Kumar_Vikas, похоже, Стивен был прав, я не добавил обратный вызов успеха, на случай, если вы просите проверить это.
4. Продолжайте и добавьте успешный обратный вызов и попробуйте.
Ответ №1:
Спасибо за @StephenMuecke, я понял. Стивен, если вы опубликуете свой комментарий в качестве ответа, я приму его, на данный момент я публикую это, возможно, это поможет кому-то в будущем.
Для того, чтобы все заработало, я просто добавил успешный обратный вызов. Очень просто, как я могу забыть об этом?
$.post('/Query/GetUserQuery', { jsonQuery: jsonString })
.done(function (data) {
$('#Results').append(data);
});