So a few things.
You are using an onchange event for your drop downs, $("#var1").change(function, yet your dropdowns themselves have no data in it to begin with:
VARIANTNAME @Html.DropDownList("var1", "Choose VARIANTNAME")
VEHICLENAME @Html.DropDownList("var2", "Choose VEHICLENAME")
MODELNAME @Html.DropDownList("var3", "Choose MODELNAME")
If you were going to do something to the effect of onchange, i would expect to see data in those drop downs. All you've done is given the drop downs a name, ex: var1, and set the default option label, ex: "CHOOSE VARIANT NAME", given that the default option label is the only option...there is nothing to "change" so therefore your .change events in your jquery would/should never fire which is behaving as expected.
A drop down list that would come pre-populate with data would look something like
@Html.DropDownList("var1", Model.Var1Options, "Choose Vehiclename")
Or something like that.
I think you need to rethink how you are loading the data/what jquery event to use to fetch your data from db.
But lets say those .change events do work...which i am 99% sure they do not...your passing back "Choose VARIANTNAME" as your name parameter...I highly doubt you have anything in your database that would return from this select statement
select VARIANTID,VEHICLENAME from VARIANT where VARIANTNAME ='Choose VARIANTNAME'
Because at the time the .change event fires on var1, the only option in that drop down is "Choose VARIANTNAME" and the jquery line -> var name = $("#var1 :selected").text(); would be getting Choose VariantName (i believe...if not it gets empty string).
But I'll say this...you need to get in a mindset of debugging. If you have events in jquery tied to elements, all you need to do is add a console.log to that event...do whatever that event is (ex: click) and see if your console.log fires. Had you done this you probably would have seen your change event handlers not firing to start with.