화면에 링크를 클릭하면 팝업 창이 열리고 링크가있는보기는 _DetailsSurvey입니다. 링크를 클릭하면 _EditSurvey보기의 내용으로 팝업 창이 열립니다. _EditSurvey의 끝에서, 나는 아약스 옵션을 사용하여 버튼 후 modelstate이 유효한 경우 나 설문 조사 테이블에 행을 삽입을 클릭하고 버튼닫기 팝업 Windows MVC 컨트롤러
<input type="submit" value="Save" />
있습니다. 내가 원하는 무엇
@using (Ajax.BeginForm("SubmitSurvey", "Blog", null, new AjaxOptions
{
UpdateTargetId = "context",
InsertionMode = System.Web.Mvc.Ajax.InsertionMode.Replace,
HttpMethod = "Post",
Url = "/Home/SubmitSurvey"
},
new { surveyItem = @Model }))
는 modelstate가 SubmitSurvey 방법에서 돌아온 후 나는 영업 끝났 이것을 달성하기 위해 다음과 같은 방법을 사용하지만이 작동하지 않는 것으로 팝업 창을 원하는 유효한 경우입니다. 다음과 같이
Employee employee;
if (ModelState.IsValid)
{
int employeeId = surveyItem.EmployeeId;
int trainingId = surveyItem.TrainingId;
employee = _work.EmployeeRepository.GetSet().
FirstOrDefault(a => a.Id == employeeId);
var training = _work.TrainingRepository.GetSet().Where(a => a.EmployeeId == employeeId && a.Id == trainingId).ToList().ElementAt(0);
training.Survey = surveyItem.survey;
training.SurveyId = surveyItem.survey.Id;
/* _work.SurveyRepository.Add(surveyItem.survey);
_work.SurveyRepository.Save();*/
_work.TrainingRepository.UpdateAndSave(training);
_work.TrainingRepository.Save();
}
else
{
return PartialView("_EditSurvey", surveyItem);
}
return JavaScript("window.close()");
내가 내 팝업 링크를 만들
<tr>
<td class="view_detail_label">
Eğitim Adı
</td>
<td>
@Html.ActionLink(
training.Name.Name,
"AddSurvey",
new {
employeeId = Model.Id,
trainingId = training.Id
},
new {
@class = "addSurvey"
}
)
<div class="result" style="display:none;"></div>
</td>
</tr>
호출 된 아약스 코드는 다음과 같다 :
$(document).ready(function() {
$('.addSurvey').click(function() {
$.ajax({
url: this.href,
type: 'GET',
cache: false,
context: this,
success: function (result) {
$(this).next('.result').html(result).dialog({
autoOpen: true,
title: 'Anket',
width: 500,
height: 'auto',
modal: true
});
}
});
return false;
});
});
을 내가 이전에 표시된 아래 아약스 BeginForm 및 사용하고 내 팝업보기에서 사용자가 설문 조사의 값을 입력하는 표가 있습니다. 마지막에는 제출 버튼이 있습니다.
<table id="context">
<tr>
<td>
<div class="editor-label">
@Html.LabelFor(model => model.survey.Context)
</div>
</td>
<td>
<div class="editor-field">
@Html.EditorFor(model => model.survey.Context)
@Html.ValidationMessageFor(model => model.survey.Context)
</div>
</td>
</tr>
<tr>
<td>
<input type="submit" value="Kaydet" />
</td>
</tr>
제공된 입력에 문제가있는 경우 각 입력란 옆에 확인 메시지가 표시됩니다. 모델이 유효하다면 팝업 창을 닫고 싶습니다.
자바 스크립트가 MVC 컨트롤러에서 반환 되었습니까? 너도 할 수있어? 왜 그랬어? 사용자가 제공 한 양식을 작성하는 데 방해가되는 사용자에게 아무런 피드백도 제공하지 않습니다. jQuery 대화 상자를 사용하십시오. 양식으로 부분보기를로드하십시오. 눈에 띄지 않는 valdiation을 사용하여 클라이언트에서 유효성을 확인한 후 다시 제출하십시오! 그런 다음 양식이 저장되었음을 사용자에게 알리는 부분보기를 리턴하십시오. 대화 상자를 닫으십시오. –
자바 스크립트를 반환 할 수 있지만 관련있는 다른 주제가 있지만이 경우에는 작동하지 않습니다. 모델의 각 필드에 대한 유효성 검사 메시지로 모델이 유효하지 않은 경우 사용자에게 피드백을 제공합니다. 작업이보기에서 성공적으로 완료되었음을 어떻게 알릴 수 있습니까? – Eneramo
어쨌든 그것은 약간의 반 패턴이라고 생각합니다. 이것을 시도하십시오 http://stackoverflow.com/questions/7271005/asp-net-mvc-returning-javascriptresult-doesnt-work –