asp.net mvc의 컨트롤러에서 직렬화 된 select2 값을 사용할 수 없습니다.

TheFallenOne

직렬화하고 AJAX를 통해 컨트롤러에 전달하려는 div 내부에 여러 컨트롤이있는 뷰가 있습니다. 뷰의 SchoolType 필드는 select2 다중 선택 드롭 다운입니다.

모델 :

public class SchoolModel
{
     public string StudentName{ get; set; }
     public List<string> SchoolType{ get; set; }
     public List<SelectListItem> SchoolTypeList{ get; set; }
}

보기 :

<div id="divSchool">
    <div class="row">
        <div class="col-md-12">
            <div class="col-md-6">
                <div class="form-group">
                    <label asp-for="SchoolType" class="col-md-3 control-label">School Type</label>
                    <div class="col-md-9">
                        <select asp-for="SchoolType" asp-items="Model.SchoolTypeList" class="form-control medium"></select>
                    </div>
                </div>
            </div>
            <div class="col-md-6">
                <div class="form-group">
                    <label asp-for="StudentName" class="col-md-3 control-label">Student Name</label>
                    <div class="col-md-9">
                        <input asp-for="StudentName" class="form-control" />
                    </div>
                </div>
            </div>
        </div>
    </div>       
</div>

제어 장치:

[HttpPost]
public ActionResult Index(SchoolModel model)
{
}

내 JS 코드 :

$('#SchoolType').select2({
    placeholder: "Filter by school"
}

$("document").on("click", ".btnCheck", function () {
var model = $('#divSchool').find('select, textarea,input').serialize();

$.ajax({
        url: "/Student/Index",
        type: 'POST',
        data: { model: model },
        cache: true,
        async: true,
    }).done(function (result) {

    }).fail(function (error) {

    })
});

그러나 직렬화 된 div는 다음과 같이 나타납니다.

model = "StudentName=Test&SchoolType=1b&SchoolType=26a"

이 값은 클라이언트 측에 있지만 AJAX에서는 StudentName 값이 정상적으로 표시되는 반면 SchoolType 값은 컨트롤러의 서버 측에서 null로 표시됩니다. 이 문제를 어떻게 해결합니까?

가능한 문제 : SchoolType 값이 문자열 목록이기 때문에 개별 문자열에 매핑되지 않습니다.

편집 1 : div를 양식으로 변경하려고 시도했지만 동일한 문제가 지속됩니다.

편집 2 :이 문제는 선택 이름을 변경하여 PHP에서 처리됩니다. 이 답변 은 예를 보여줍니다.

The_Outsider

직렬화 부분을 조작 할 수 있는지 잘 모르겠습니다. 그 구조를 수동으로 얻을 수 있습니다.

serialize ()를 사용하여 수행하는 방식과 같은 다른 컨트롤을 직렬화하고 모델에 할당 할 수 있습니다. 그리고 Select2의 경우 이렇게하여 모델에 추가합니다.

model = {};
$(".select2").each(function () {
    var selectedValue = $(this).val();
    if (selectedValue != null) {
        model[this.name] = selectedValue;
    }
}); 

그러면 필요한 구조가 제공됩니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

js를 사용하여 asp.net mvc의 컨트롤러에 파일 값을 보낼 수 없습니다.

ASP.NET Core (MVC) : 컨트롤러에서 Login HttpPost 작업을 수행 할 수 없습니다.

ASP.NET MVC-string [] 값을 다른 컨트롤러 작업에 전달할 수 없습니다.

Ninject를 사용하여 Angular 서비스에서 호출 된 ASP.NET 웹 API 컨트롤러에 종속성을 주입 할 수 없습니다.

ASP.NET / MVC의 컨트롤러에 직렬화 된 양식과 번호를 게시하려고합니다.

ASP.NET MVC 컨트롤러 메서드에서 JSON.NET으로 직렬화 된 camelCase JSON을 반환하려면 어떻게해야합니까?

ASP.NET MVC의 보기에서 컨트롤러로 모델을 다시 전달할 수 없습니다. 모델은 수신 시 null입니다.

Asp.net Core MVC의 컨트롤러에서 내 사용자를 어떻게 얻을 수 있습니까?

ASP.NET MVC4에서 하나의 컨트롤러 함수를 사용하여 뷰에서 두 개의 배열을 반환 할 수 있습니까?

mvc asp.net의 브라우저에서 API 컨트롤러를 찾을 수 없습니다.

ASP.NET MVC는 양식 제출 시 컨트롤러에서 10진수 값을 검색할 수 없습니다.

한 컨트롤러 메서드에서 설정된 모델 속성의 속성을 다른 컨트롤러 메서드에서 사용할 수 없습니다.

asp.net mvc 컨트롤러에 둘 이상의 Post 메서드를 사용할 수 있습니까?

최대화 된 창에서 창 컨트롤을 사용할 수 없습니다.

ASP.NET MVC [FromBody] 컨트롤러 메서드 매개 변수에서 다형성을 사용할 수 있습니까?

ASP.net MVC는 컨트롤러 함수에서 ajax 데이터에 액세스 할 수 없습니다.

select2에서 ajax를 사용할 때 사용자 정의 속성 값을 가져올 수 없습니다.

각도 js : 컨트롤러에서 포함 된 페이지의 html로 값을 전달할 수 없습니다.

ASP.NET Core 2에서 XML로 직렬화 할 수 없음

ajax 요청을 사용하여 asp dot net core 양식을 직렬화 할 수 없습니다.

Asp.NET의 컨트롤러에 데이터 배열을 전달할 수 없습니다.

보기에서 컨트롤러 ASP.NET MVC 5로 데이터를 전달할 수 없습니다.

ASP.net MVC에서 컨트롤러 작업을 완료하기 전에 cshtml 로직을 처리 할 수 있습니까?

ASP.net Core: 브라우저에서 컨트롤러의 동작을 찾을 수 없습니다.

asp.net 핵심 httpget 메서드는 열거형 배열을 역직렬화할 수 없습니다.

스트림 데이터 asp .net 코어를 직렬화할 수 없습니다.

reactjs 응답의 asp.net 코어 컨트롤러 끝점에서 응답을 가져올 수 없습니다.

asp.net core mvc에서 라우팅 된 URL을 slugify 할 수 없습니다.

netcoreapp3.0을 대상으로하는 ASP.NET Core 웹앱에서 특정 API 컨트롤러에 대해 CORS를 활성화 할 수 없습니다.

TOP 리스트

  1. 1

    PrematureCloseException : 연결이 너무 일찍 닫혔습니다.

  2. 2

    MDRotatingPieChart를 회전하면 각도 대신 x / y 위치가 변경됩니다.

  3. 3

    c # 웹 사이트에서 텍스트를 복사하는 방법 (소스 코드 아님)

  4. 4

    jfreecharts에서 x 및 y 축 선을 조정하는 방법

  5. 5

    ArrayBufferLike의 typescript 정의의 깊은 의미

  6. 6

    Ionic 2 로더가 적시에 표시되지 않음

  7. 7

    복사 / 붙여 넣기 비활성화

  8. 8

    Google Play Console에서 '예기치 않은 오류가 발생했습니다. 나중에 다시 시도해주세요. (7100000)'오류를 수정하는 방법은 무엇입니까?

  9. 9

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  10. 10

    QT Designer를 사용하여 GUI에 이미지 삽입

  11. 11

    java Apache POI Word 기존 테이블 셀 스타일 및 서식이있는 행 삽입

  12. 12

    Kubernetes Horizontal Pod Autoscaler (HPA) 테스트

  13. 13

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  14. 14

    C # HttpWebRequest 기본 연결이 닫혔습니다. 전송시 예기치 않은 오류가 발생했습니다.

  15. 15

    어떻게 같은 CustomInfoWindow 다른 이벤트를 할 수 있습니다

  16. 16

    rclone으로 원격 디렉토리의 모든 파일을 삭제하는 방법은 무엇입니까?

  17. 17

    dataSnapShot.getValue () 반환 데이터베이스에 그겁니다 데이터 종료 널 (null)

  18. 18

    ORA-12557 TNS : 프로토콜 어댑터를로드 할 수 없습니다

  19. 19

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  20. 20

    다음 컨트롤이 추가되었지만 사용할 수 없습니다.

  21. 21

    C # Asp.net 웹 API-JSON / XML 변환기 API 만들기

뜨겁다태그

보관