내 asp.net mvc-4 웹 응용 프로그램 내에서 이상한 문제에 직면 오전 Html.Editor
나를 인도하는 방식으로 매우 현명한 것 같습니다 그것이 실제로 어떻게 작동하는지 혼란스러워하십시오. 지금 i는 다음과 같이, 나는이 부분 뷰를 렌더링 기본보기를 내보기, 내부에 다음과 같은있다 : - 여기어떻게 내 Html.Editor는 내 모델 내에서 제공되지 않습니다 그 가치를 얻을
@model TS.ViewModels.ServerJoin
using (Html.BeginForm())
{
@Html.ValidationSummary(true)
@Html.Partial("_PMCreateAccount",Model.createAccount.operation.Details.ACCOUNTLIST.ToList())
}
을하고하는 부분이다 : -
@model IList<TS.ViewModels.ACCOUNTLIST>
for(int i2 = start; i2 < count ; i2++) {
<div>
<span class="f">@Html.DisplayName("["+i2.ToString()+"].ACCOUNTNAME") </span>@Html.Editor("["+i2.ToString()+"].ACCOUNTNAME")
<span class="f">@Html.DisplayName("["+i2.ToString()+"].PASSWORD") </span>@Html.Editor("["+i2.ToString()+"].PASSWORD")
<span class="f">@Html.DisplayName("["+i2.ToString()+"].NOTES") </span>@Html.Editor("["+i2.ToString()+"].NOTES") </div>
}
과 사후 조치 방법은 다음과 같습니다 : -
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(ServerJoin sj,List<ACCOUNTLIST> al)
{
if(ModelState.IsValid)
{
}
return View(sj);
}
지금은 다음 SJ & 알이 정확한 값을 얻을 것이다,보기를 제출 가정 해 봅시다 ..하지만 모델 상태 오류가 가시라고하자 에 다루지는 다음 내 주요보기는 지금 무엇을 나에게 혼란을 얻을하는 부분보기 내부의 Html.Editor
내 포스트 액션 메소드 내에서이 문제를 정의하지 않고 원래의 값을 읽을 수 있었다이다 .. 다시 렌더링됩니다 : -
sj.createAccount.operation.Details.ACCOUNTLIST = al;
전 내 주요 내부보기 나는 부분보기로 다음과 같은 전달하고 의미 : -에 - 경우 뷰가 모델 유효성 검사 오류 후 렌더링
@Html.Partial("_PMCreateAccount",Model.createAccount.operation.Details.ACCOUNTLIST.ToList())
과 Model.createAccount.operation.Details.ACCOUNTLIST.ToList()
이 비어있을 것입니다 ... 내가 생각했던 그 Html.Editor
것 내가이 값을 명시 적으로 지정하지 않으면 원래 값을 읽을 수 없습니다. 게시 조치 방법 : -
sj.createAccount.operation.Details.ACCOUNTLIST = al;
그러나이 경우가 아닙니까? 그래서 아무도 내 조언을 수 있습니다 내 Html.Editor
비록 모델 유효성 검사 오류 후보기가 렌더링되면 주보기에서 전달되는 모델이 비어있을 것이지만 그들의 가치를 얻을 수있었습니다 ??
우선 순위는 무엇입니까 ... 이제는 HTML 헬퍼가 뷰에서 값을 게시하지 않는 한 항상 modelstate의 값을 사용한다는 것을 알고 있습니다.이 경우 값을 다른 뷰에서 표시합니다 장소 ..하지만 내 경우에는 명시 적으로 내 기본보기에서 모델을 내 부분보기로 전달하고 ,,, 모델은 accoutlist의 빈 컬렉션을 갖게되지만 Html.Editor는 여전히 올바른 값을 읽습니다! –
더 나은 이해를 얻으려면 내 2 가지 질문에 대답 할 수 있습니다. 심지어 모델을 부분 뷰에 전달하더라도 부분 뷰 HTml.Editor는 여전히 포스트 데이터의 원래 값을 검사합니다. 두 번째 질문 .. Html.Editor, Html.EditorFor & Html.TextBox & Html.TextBoxFor를 포함한 HTML 도우미 내부의 동작입니까? 만약 내가 원시 HTML을 사용하는 뜻 그럼 다른 행동을 기대해야합니까? 감사합니다. –