You cannot post the drop down list text to the server, you can only sent the values. There are workarounds -- you can POST the data manually and add the dropdown text along with it. But the proper way to do it is to refer back the id from the source you filled the drop down list in the first place.
Example:
If you have a drop down like this:
<form id="someForm">
<select id="country" name="countryddl">
<option value="1">US</option>
<option value="2">UK</option>
</select>
<input type="submit" value="submit"/>
</form>
Get the value in the controller and map it back to the source.
public ActionResult ActionName(FormCollection formcollection)
{
var countryId = formcollection["countryddl"];
var countryName = countriesMap[countryId ]; // Assuming countriesMap is a dictionary with all countries mapped to its Id.
}
Workaround
If you absolutely must send the text along in the form, you can override the default behaviour on form submitting and post the dropdown text along with the value:
$("#btnSubmit").click(function(e){
e.preventDefault();
var selectedOption = $("#CountryId option:selected").text();
// Add the selected drop down text to a hidden field
$("<input/>",{type:'hidden',name:'countryName'}).val(selectedOption).appendTo("#someForm");
// now post the form
$("#someForm").submit();
});
Now you can get the selected text in your controller like this:
var countryName = formcollection["countryName"];