0
을 다시 게시 모델을 깨는 나는 다음 뷰 모델이 : 나는 다음 DataSyncOptions
을 통해 루프 내보기에 일부 텍스트 상자를 나열수동으로 생성 된 입력 값
public class DataSyncViewModel
{
public ConfigurableDataSyncOptions DataSyncOptions { get; set; }
public int Id { get; set; }
public string SystemName { get; set; }
}
을 :
@if (@Model.DataSyncOptions != null)
{
if (Model.DataSyncOptions.TextConfigurableOptions != null)
{
for (int i = 0; i < Model.DataSyncOptions.TextConfigurableOptions.Count; i++)
{
<div class="span6">
<h4>@Model.DataSyncOptions.TextConfigurableOptions[i].OptionText?</h4>
<p>
@Html.EditorFor(m => Model.DataSyncOptions.TextConfigurableOptions[i].OptionValue)
</p>
@Html.HiddenFor(m => Model.DataSyncOptions.TextConfigurableOptions[i].OptionName)
</div>
}
}
}
@Html.HiddenFor(m => m.Id)
@Html.HiddenFor(m => m.SystemName)
이 작동 때 양식이 다시 게시되면 내 컨트롤러에서 SystemName
과 Id
에 액세스 할 수 있습니다. 그러나
, 내가
@if (Model.DataSyncOptions.TextConfigurableOptions[i].OptionType == "")
{
@Html.EditorFor(m => Model.DataSyncOptions.TextConfigurableOptions[i].OptionValue)
}
else
{
//This appears to be causing issues
<input type="@Model.DataSyncOptions.TextConfigurableOptions[i].OptionType" name="Model.DataSyncOptions.TextConfigurableOptions[@i].OptionValue" value="@Model.DataSyncOptions.TextConfigurableOptions[i].OptionValue" />
}
내 값이 모델을 다시 게시 중지와
@Html.EditorFor(m => Model.DataSyncOptions.TextConfigurableOptions[i].OptionValue)
을 대체합니다. 내 애플 리케이션의 플러그인 작성자가 수동으로 입력을 만드는 오전 추가 한 옵션의 입력 유형을 지정할 수 있도록 노력하고 있습니다.
입력 생성을 변경하면 포스트 백에서 모델 바인딩이 깨지는 이유는 무엇입니까? 우리는 @Model
을 쓸 때 사실은 우리의보기가 강력하게 형식화되는 유형의 actualy 인스턴스에
<input type="@Model.DataSyncOptions.TextConfigurableOptions[i].OptionType"
name="DataSyncOptions.TextConfigurableOptions[@i].OptionValue"
value="@Model.DataSyncOptions.TextConfigurableOptions[i].OptionValue" />
을 대신 Model
의
글쎄, 놈. 이제 나는 어리 석다. 시간 내 줘서 고마워. 그것은 입력의 실제 가치를 게시했지만 나머지는 깨뜨리는 것처럼 나를 혼란스럽게 만들었습니다. – webnoob
답변 마크를 제거해야했습니다. 코드로 입력 된 인라인을 변경하면이 입력 게시물의 값이 중지됩니다. 전에 제대로 게시했지만 다른 값은 중지되었습니다. 어떤 생각이 잘못 될 수 있습니까? – webnoob
액션 메소드의 파라미터가'(DataSyncViewModel model)'인 경우,'name' 속성은'DataSyncOptions.TextConfigurableOptions [@i] .OptionValue' ('DataSyncViewModel.' 접두사를 없앱니다) –