Asp.net-Mvc

淘汰 JS + 發送到 MVC 3

  • February 11, 2014

我有以下程式碼,但是一旦將其送出到伺服器,我就會得到“未定義”的字元串,而不是 null 或空。這會導致問題,因為我無法執行驗證。任何想法如何在使用淘汰賽時防止這種情況發生。

var viewModel = {
       userName: ko.observable(""),
       emailAddress: ko.observable(""),
       verifyEmailAddress: ko.observable(""),
       OptOut: ko.observable(true),
       Grades: ["Grade 1", "Grade 2", "Grade 3", "Grade 4", "Grade 5", "Grade 6"],
       gradeSelected: ko.observable(["Grade 1"])
   };
   ko.applyBindings(viewModel);

   $("#addUser").click(function (e) {
       $.ajax({
           url: 'AddUser',
           dataType: 'json',
           data: JSON.stringify(viewModel),
           type: 'POST',
           success: function (data) {
               $("#errorSection").text(data.Success).show();
           }   
       });
       e.preventDefault();
   });

提前致謝

而不是JSON.stringify(viewModel)do ko.toJSON(viewModel),它將在進行字元串化之前首先解開所有可觀察對象。這裡有一些有用的文件:http: //knockoutjs.com/documentation/json-data.html

我認為首先你應該改變:gradeSelected: ko.observable(Grades

$$ 0 $$) 也許您想將成績更改為 observableArray。我會把它放在評論中,但還不能。

引用自:https://stackoverflow.com/questions/6160268