Mam coś nie tak z JSON lub ASP.NET MVC, używam ASP.NET MVC, a tutaj wysyłam z klienta.

Uwaga Po debugowaniu w Chrome, wyjaśniam, że jest to, co jest przekazywane w JavaScript, nie jestem ręcznie ustalającym stanu NULL, jak przychodzi w wyniku czego gdzieś indziej nie jest null. Który po raz kolejny nie jest w mojej kontroli, ponieważ pochodzą z bazy danych.

Podczas debugowania stan wyświetla, że jest null, zamiast "null", ale podczas debugowania w MVC wyświetla "NULL" zamiast NULL.

$.ajax(
   '/Client/Post',
   {
       method: 'POST',
       data: {
                 Country: 'US',
    // this is null because it is coming from somewhere else as null
                 State: null
             }
   });

Mój program obsługi ASP.NET MVC otrzymuje ...

public ActionResult Post(Client model){
    if(model.State == "null") 
    {
         /// this is true... !!!!
    }
    if(model.State == null )
    {
         // :( this should be true...
    }
}

enter image description here

Czy problem z ASP.NET MVC lub jQuery?

Czy to jest jQuery, które wysyła null jako "null", czy jest to MVC, który jest ustawienie null jako "null"?

ROZWIĄZANIE

Musiałem po prostu rekurencyjnie tworzyć nową hierarchię obiektów (klonowanie obiektu) i wyślij go do jQuery, jako jQuery wysłał dane jako formularz zakodowany, w którym nie ma sposobu, aby reprezentować NULL, jednak idealnie jQuery nie powinien w ogóle mieć serializowanego null.

9
Akash Kava 9 grudzień 2011, 19:58

2 odpowiedzi

JQuery to robi. Możesz monitorować żądanie przez Firebug Fiddler, Chrome Devper Helper itp.

W takim przypadku może użyć pustego sznurka zamiast null:

data: {
    Country: 'US',
    State: ""
}
4
Jeffrey Zhao 9 grudzień 2011, 16:04

Jeśli musisz opublikować dane niż używać obiektu jako JSON, zobacz link

Aby przekazać całe obiekty JSON do kontrolera MVC

3
Community 23 maj 2017, 12:30