У меня есть код, который, кажется, работает некорректно. Я уверен, что есть что-то, что мне не хватает, но я слишком долго избивал себе голову и никуда не денусь.Метод PartialView возвращает Null (похоже, вообще не вызывает вид)
Вот AJAX вызов:
$.ajax({
type: 'POST',
url: '@Url.Action("GetPartial", "MyPage")',
async: true,
data: {
MyID: 'ABC123'
},
error: function (jqXHR, textStatus, errorThrown) {
alert('Error loading partial for ' + MyId + '\n\n' + jqXHR + '-' + textStatus + '-' + errorThrown);
}
}).done(function (result) {
$(data).html(result);
});
Здесь действие в MyPageController.cs:
[HttpPost]
public PartialViewResult GetPartial(string MyID)
{
return PartialView("ThePartial");
}
В моих взглядах diretory У меня есть MyPage подкаталог, который содержит ThePartial.cshtml.
Я поставил точки останова в этом cshtml, и он, кажется, никогда не называется.
Кроме того, я проверил, что PartialView пуст, слегка изменив свой код действия, чтобы:
[HttpPost]
public PartialViewResult GetPartial(string MyID)
{
PartialViewResult pView = PartialView("ThePartial");
return pView;
}
, а затем положить контрольную точку на линии «возврата» и глядя на содержимое Pview.
Ниже приведена сокращенная версия частичного обзора.
@model MyProject.Models.MyModel // There is a breakpoint here
@{
var x = "testing"; // There is a breakpoint here
x += " 123"; // There is a breakpoint here
}
<div>@x</div>
У меня на самом деле есть контрольные точки, установленные на первой, третьей и четвертой строках, которые никогда не попадали.
Я понимаю, что частичное относится к модели данных, которая не включена в действие, но в реальной версии используется модель IS. Я удалил его из этого сообщения, чтобы не допустить его, думая, что модель не там, где проблема. Вот фактический вызов PartialView:
MyData myData = MyModel.GetData(MyID);
PartialViewResult pView = PartialView("ThePartial", myData);
Я полностью потерял это и буду признателен за любую помощь.
Не можете добавить описание вашего частичного вида? – alexmac
Я удалил ссылки на модель данных из приведенного выше кода, поэтому частичный вид не имеет большого смысла.но я добавлю, что смогу. – ESDictor
pView in debug is null? Я могу предложить изменить PartialViewResult на ActionResult и попытаться отобразить другое, а не частичное представление (которое правильно отображается). – alexmac