I just did this myself (nop 3.1)
the Model, View and Controller all have to change:
Model - add something like this to ContactUsModel.cs
public ContactUsModel()
{
this.SubjectDD = new List<SelectListItem>();
SubjectDD.Add(new SelectListItem() { Text = "Order Status Inquiry", Value = "Order Status Inquiry" });
SubjectDD.Add(new SelectListItem() { Text = "Billing Inquiry", Value = "Billing Inquiry" });
SubjectDD.Add(new SelectListItem() { Text = "Return Inquiry", Value = "Return Inquiry" });
SubjectDD.Add(new SelectListItem() { Text = "Other Question", Value = "Other Question" });
}
[NopResourceDisplayName("ContactUs.Subject")]
[AllowHtml]
public string Subject { get; set; }
[NopResourceDisplayName("ContactUs.Subject")]
public IList<SelectListItem> SubjectDD { get; set; }
View -
<div>
@Html.LabelFor(model => model.SubjectDD)
@Html.DropDownList("Subject", Model.SubjectDD);
</div>
Controller -- CommonController.ContactSent(...)
String subject = model.Subject ;
No Warranties - your mileage may vary . . .