The name isn't sent with the post so you can't read it using traditional methods. If your data is hard-coded then you already know what the ID equates to.
private List<MyData> GetData()
{
return new List<MyData> {
new MyData{ ID=1, Name="Student" },
new MyData{ ID=2, Name="House Wife" },
new MyData{ ID=3, Name="Business Man" },
new MyData{ ID=4, Name="Service Man" },
};
}
[HttpGet]
public ActionResult Index()
{
var occupationList = new SelectList(GetData(),
"ID", "Name", 1);
....
int postedID = 1;
string name = GetData().FirstOrDefault(d => d.ID == postedID).Name;
....
Edit: By the day, you *do* want to store the ID and not the text, trust us on that as it'll come back and bite you if you don't maintain data integrity in this way.