나는 이상한 경우가있어서 나는 당신의 깨달음을 원했다. 컨트롤러가 두 개 있습니다. 일반적인 사람 사용을위한 한 사람 컨트롤러는 후보자와 관련된 구체적인 행동 방법을 위해 행동 방법과 한 후보 컨트롤러를 사용합니다. 다른 Person 유형에 대해 나중에 사용하려는 경우 generic으로 사용하기 위해 Person 폴더 아래에있는 부분 뷰 하나를 사용합니다. 당분간이 부분 뷰는 후보 컨트롤러를 대상으로하는 Ajax.BeginForm을 사용합니다. 내가 사용하는 구문은액션 인수를 찾지 못하는 4 개의 인자를 가진 Ajax.BeginForm
@using (Ajax.BeginForm("SaveCandidateLanguage", "Candidate",
new AjaxOptions
{
HttpMethod = "Post",
OnBegin = "onBeginFormValidation",
OnSuccess = "onSaveCandidateLanguageSuccess"
}))
{
// form input elements
}
이 Ajax.BeginForm의이 유형은 다른 컨트롤러에서 작업을 대상으로한다는 사실에도 불구하고 제대로 작동합니다. 이제 폼 유효성 검사를 위해 Ajax.BeginForm에 인수를 더 추가해야했습니다. 내 새 구문은 다음과 같습니다.
@using (Ajax.BeginForm("SaveCandidateLanguage", "Candidate",
new AjaxOptions
{
HttpMethod = "Post",
OnBegin = "onBeginFormValidation",
OnSuccess = "onSaveCandidateLanguageSuccess"
},
new
{
id = "addEditCandidateLanguageForm",
novalidate = "novalidate"
}))
{
// form input elements
}
이 방법으로는 작업 방법을 찾을 수 없습니다. Person Controller 안에 조치를 취하면 다시 올바르게 작동합니다. 그러나 나는 왜 그런지 궁금해했다. 나는 약간 파기를했다. 그러나 나는 그럭저럭 그것에 관해 대답을 얻을 수 없었다. // {프로젝트 이름}/사람/SaveCandidateLanguage 길이 = 9
대신
의 HTTP : 불을 지르고에서
나는 브라우저가 게시하려고 URL이 어떤 이유로
HTTP에 대한 것을 볼 : // {ProjectName}/후보자/SaveCandidateLanguage? Length = 9
자연스럽게 404 Not found 응답이 표시됩니다. 나는 또한 변수의 길이가 궁금 해서요? 길이 = 9는 URL의 끝에서 보았습니다.
의 전용 속성 그리고'에 대한 이유 때문에
?length="9"
에 대한 이유는가? 길이 = "9"' "후보는"9 문자가 포함되어 있기 때문에 'length'는'string'의 유일한 속성입니다. –해답을 가져 주셔서 감사합니다! 이제는 의미가 있습니다. :) 내가 두 번째 방법을 보았던 것에서 아마 한 가지는 아마 Ajax.BeginForm (문자열 actionName, 문자열 컨트롤러, 객체 routeValues, AjaxOptions 옵션, 객체 htmlAttributes)일까요? 답을 명확히하기 위해서. 다시 감사합니다. –