나는 StackOverflow에 대한 ASP.NET 블로그 및 질문에 대한 수백 권의 게시물을 읽었지 만이 (분명히) 간단한 문제에 대한 해결책을 찾을 수 없습니다.목록 <string> 바인딩
질문 클래스
public class Question
{
public int QuestionId { get; set; }
public string QuestionBody { get; set; }
public List<string> Answers { get; set; }
}
나는 질문 객체의 생성을위한 간단한 양식을 가지고 여기에 단순화 된 버전입니다. 나는 컬렉션에 대한 자동 EditorFor이 아니라는 것을 알고, 그래서으로 시도 :
<div class="editor-field">
@Html.TextBox("Answers")
@Html.TextBox("Answers")
@Html.TextBox("Answers")
</div>
내 컨트롤러에서
: 답변이 제대로 전달
public ActionResult Create(Question question, List<string> Answers)
...
하지만 내 양식에
그들은 내 모델에 구속되지 않습니다!
질문 1 :이 문자열 목록을 내 Question 모델에 포함 된 문자열 목록에 자동으로 연결하는 방법이 있습니까?
question.Answers = Answers;
db.Questions.Add(question);
db.SaveChanges();
하지만 내 컬렉션은 항상 빈으로 전달되는 :
는 그럼 난 일을, 내 모델의 목록을 수 있도록이 목록을 "강제"로했습니다. ASP.NET MVC 모델 바인딩 및 유효성 검사 때문입니다.그래서, 질문 # 2 : "수정"할 수있는 방법을 존재 하는가이 db.SaveChanges와 함께 데이터베이스에 저장되기 직전에 내 질문 객체()?
감사합니다.
고마워요. 두 번째 해결책을 사용 하겠지만 첫 번째 해결책을 이해할 수 없기 때문입니다. 문자열의 컬렉션 (List)은 기본 유형이어야하며 속성이있는 복잡한 객체는 아닙니다. 간단한 텍스트 상자를 렌더링하고 목록을 컨트롤러에 전달하려면 EditorTemplate을 실제로 만들어야합니까? (이전에 말한 것처럼 이미 컨트롤러에 전달할 수 있지만 목록은 모델에 바인딩되어 있지 않습니다!). – daliz