2017-09-20 3 views
0

Mac 용 .NET Core 2.0, MVC를 사용하고 있습니다.동일한 이름의 여러 입력 필드 C# .NET Core

동일한 이름의 텍스트에 대해 여러 입력 매개 변수를 사용할 수있는 양식을 만들려고합니다. 입력 이메일 []를 명명에 대한이 나에게 오류를 제공

<div> 
    <input asp-for="Email" class="form-control" type="email"/> 
    <input asp-for="Email" class="form-control" type="email"/> 
    <input asp-for="Email" class="form-control" type="email"/> 
    <input asp-for="Email" class="form-control" type="email"/> 
<div> 

, 내가 읽은 무엇인가 그러나 나는 그것이 작동 할 수 없습니다 : 내보기는 다음을 포함합니다.

어떻게하면 내보기를 순서대로 넣을 수 있으며 나중에 컨트롤러에서 전자 메일 주소를받을 수 있습니까?

미리 감사드립니다.

답변

0

Email[]은 클래스입니다 (사용자의 표기법에서 가정하면 액션 선언에 대해 이야기하는 경우). 입력은 대부분 문자열 일 가능성이 높습니다.

작업 매개 변수를 string[] Email으로 변경하십시오.

ASP.NET 핵심 모델 바인더는 동일하게 이름이 지정된 여러 매개 변수를 배열로 처리하므로 Email 또는 Email[] 중 하나가보기에서 작동해야합니다.

HTML은 HTML 관점에서 Email[]은 단지 Email과 같은 일반적인 이름입니다. 이 명명 규칙이 어떻게 해석되는지는 백엔드 기술에만 의존합니다.

즉, ASP.NET 코어가 배열로 해석하는 반면 PHP는 복수의 값 (즉, [email protected]&[email protected])을 단일 값 (첫 번째 또는 마지막 매개 변수 사용)으로 처리합니다.

+0

안녕하세요 Tseng, 답장을 보내 주셔서 감사합니다. HTML은 형식을 구분하지 않습니다. 이메일 []은 이메일과 동일합니다. ASP.NET 코어 모델 바인더가 동일하게 이름이 지정된 여러 매개 변수를 배열로 처리한다는 것도 알아두면 좋습니다. 그게 내가 앞으로 나아갈 수있게 해준다. 내 코드에서 Email은 내 모델의 문자열 속성이지만 이것을 문자열 배열로 변경해야합니다. 여전히 모델 바인딩을 통해 컨트롤러의 배열에 액세스하려고하면 Email = null ..이라는 것을 알게됩니다. – Dennis