Я пытаюсь проверить модель null ИЛИ нет, но я не могу решить проблему. Оказывая основной вид я вынес частичный вид следующимПроверка модели пустая или нет в mvc
Главная Просмотреть
<div class="modal fade" id="surveyPreviewModal" data-backdrop="static" data-keyboard="false" tabindex="-1" role="dialog" aria-labelledby="surveyPreviewLabel" aria-hidden="true">
<div class="modal-lg modal-dialog">
<div class="modal-content" id="surveyPreviewContent">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
×
</button>
<h4 class="modal-title" id="surveyPreviewLabel">Survey Preview</h4>
</div>
<div class="modal-body" id="surveyPreviewBody">
@Html.Partial("_surveyPreview")
</div>
</div>
</div>
</div>
и в частичном У меня есть функция, как показано ниже
@model LMS_TraineeSurveyPaginationViewModel
<script type="text/javascript">
function SurveyPreview(){
var surveyQuestionViewModel = @Html.Raw(Json.Serialize(Model.SurveyQuestionsViewModel.ToArray()));
var surveyQuestionOptionChoideViewModel= @Html.Raw(Json.Serialize(Model.SurveyQuestionOptionChoiceViewModel.ToArray()));
$.post('@Url.Action("SurveyPreview", "Survey")', { SurveyID : surveyID,` page : page },
function (data) {
$('#surveyPreviewBody').html('');
$('#surveyPreviewBody').html(data);
SetProgressBar(page,'@(Model==null?0: Model.Pager.TotalPages)');
}).fail(function() {
alert("error in GetTraineeSurvey");
}).success(function() {
});
}
</script>
Таким образом при рендеринге парциальное view в этой функции (SurveyPreview), она дает ошибку, поскольку модель имеет нулевой и прямой белый экран. Если я не вызвал функцию, которая находится внутри частичного представления, то почему она проверяет, является ли модель нулевой ИЛИ нет? это должно быть, когда я выполняю функцию, например, при нажатии кнопки?
У меня есть кнопка на главном экране, откуда я показываю bootstrap modal и 'show
' метод bootstrap modal. Я возвращаю тот же частичный вид, чтобы связать данные в вызове ajax. Ниже код записывается в частичном
$(document).ready(function() {
$('#surveyPreviewModal').on('show.bs.modal', function (e) {
surveyID = $(e.relatedTarget).attr('data-surveyID');
SurveyPreview(@SurveyPageTypePageNumber.StartPage,null);
});
})
и в контроллере
public ActionResult SurveyPreview(int SurveyID, int page)
{
------ some code ------
return PartialView("_SurveyPreview",viewModel);
}
Любая помощь на это оценили!
Вы назначаете экземпляр 'viewmodel' в контроллере? то есть 'viewmodel = new viewmodel();'? –
@ BarryO'Kane Да .. как этот 'вар ViewModel = новый LMS_TraineeSurveyPaginationViewModel() { SurveyQuestionsViewModel = SurveyQuestionsViewModel.Where (х => x.PageNumber == pager.CurrentPage) .ToList(), SurveyQuestionOptionChoiceViewModel = SurveyQuestionIDsOptionChoice, Pager = pager }; ' – Rohit
Хорошо, и когда вы отлаживаете, вы можете увидеть экземпляр, если вы наведете над' viewmodel' после его создания? –