Value lost in JSON.stringify In $.ajax function
<pre><code> &lt;script&gt;
    $(document).ready(function () {                 
        $("#btnPost").click(function () {
            var sof = {
                EndUserIp: "192.168.10.10",
                TokenId: $("#pageInitCounter").val(),
                AdultCount: $("#AdultCount").val(),
                ChildCount: $("#ChildCount").val(),
                InfantCount: $("#InfantCount").val(),
                DirectFlight: "false",
                OneStopFlight: "false",
                JourneyType: $("#JourneyType :selected").text(),
                PreferredAirlines: null,         
            }
          alert(JSON.stringify(sof));
            $.ajax(
                {
                    url: "/api/Flight/SearchFlight",
                    type: "Post",
                    contentType: "application/json",
                    data: JSON.stringify(sof),
                    success: function (result) {
                        alert(result);
                    }
                });        
        });
    });
  &lt;/script&gt;
</code></pre>

<p>This is the simple code in Script tage.There is a json Object array.I have named it sof.I am initialising value for each of the objects through Id selector on click Event from each of textboxes, dropdowns etc.</p>

<p>Now, as u can see there is a alert box after sof json array.</p>

<pre><code>   alert(JSON.stringify(sof));
</code></pre>

<p>It is showing exact and correct values whatever is selected in dropdown.</p>

<p><strong>But problem appears here at $.Ajax function call.</strong>
I want to return back Json array to url stated in function but when i hover over sof , it strangely have some values from textboxes correct but from dropdown like JourneyType, its returning null.</p>

<p>One more thing, since the alert box is returning all the correct values But when i hover over sof in alert box after alert box is being closed, i can see that textboxes value are correct but dropdown value(JourneyType) is null here .Now, how it could happen, since alert box have shown me the correct dropdown's value selected.</p>

<p>and this is my simple dropdown:</p>

<pre><code> @Html.DropDownListFor(model =&gt; model.JourneyType, Model.JourneyList, new {id = "JourneyType"})
</code></pre>

<p>Please someone tell me what is happening here.
This is the full html rendered.I have copied code from view source.</p>

<pre><code>   &lt;div class="form-group"&gt;
     &lt;label class="control-label col-md-2" for="DepartmentID"&gt;Journey Type&lt;/label&gt;
        &lt;div class="col-md-10"&gt;
          &lt;select id="JourneyType" name="JourneyType"&gt;&lt;option value="0"&gt;OneWay&lt;/option&gt;
 &lt;option value="1"&gt;Return&lt;/option&gt;
 &lt;option value="2"&gt;MultiStop&lt;/option&gt;
 &lt;option value="3"&gt;AdvanceSearch&lt;/option&gt;
 &lt;option value="4"&gt;SpecialReturn&lt;/option&gt;
 &lt;/select&gt;
 &lt;span class="field-validation-valid text-danger" data-valmsg-for="JourneyType" data-valmsg-replace="true"&gt;&lt;/span&gt;
           &lt;/div&gt;
       &lt;/div&gt;
</code></pre>

<p>This is the model class:</p>

<pre><code>    public enum JourneyType
{
    OneWay, Return, MultiStop, AdvanceSearch, SpecialReturn
}
public enum FlightCabinClass
{
    All, Economy, PrimiumEconomy, Business, PremiumBusiness, First
}
public class SearchForFlight
{
    public SearchForFlight()
    {
        JourneyList = new List&lt;SelectListItem&gt;();
        FlightCabinClassList = new List&lt;SelectListItem&gt;();
    }
    public string EndUserIp { get; set; }
    public string TokenId { get; set; }
    public int AdultCount { get; set; }
    [JsonIgnore]
    public IEnumerable&lt;SelectListItem&gt; JourneyList { get; set; }

    public int ChildCount { get; set; }
    public int InfantCount { get; set; }
    public bool DirectFlight { get; set; }
    public bool OneStopFlight { get; set; }
    public Enum JourneyType { get; set; }
    public string PreferedLines { get; set; }
    public string Origin { get; set; }
    public string Destination { get; set; }
    public Enum FlightCabinClass { get; set; }
 //   [DataType(DataType.Date)]
    public DateTime PreferredDepartureTime { get; set; }
//    [DataType(DataType.Date)]
    public DateTime PreferredArrivalTime { get; set; }
    [JsonIgnore]
    public IEnumerable&lt;SelectListItem&gt; FlightCabinClassList { get; set; }
    public string Sources { get; set; }

}
</code></pre>