I have a list in which there is one column which stores the Employee Department and it is of type Taxonomy field and it is stored in the user profile property.

I want to get the display value of that field as string.

My code is:

protected void Page_Load(object sender, EventArgs e)
        string dept = null;
        SPSite site = SPContext.Current.Site;
        SPWeb web = SPContext.Current.Web;

        SPUser user = web.EnsureUser(web.CurrentUser.LoginName);          
        List<string> department = UserProfileHelper.GetUserProfilePropertyValue(site.Url,"Department",user,false);

        SPQuery query = new SPQuery();
        query.Query="<Where><Eq><FieldRef Name=\"Department\" /><Value Type=\"TaxonomyFieldType\">"+department[0]+

        query.ViewFields = "<FieldRef Name='Title'/>";

        SPList list = web.Lists["Departments"];

        SPListItemCollection items = list.GetItems(query);

        foreach (SPListItem item in items)
            TaxonomyField taxField = item["Department"] as TaxonomyField;
             dept = taxField.GetFieldValue("Department").ToString();

        string url = web.Url + "/" + dept;



In my code.. GetUserProfilePropertyValue() method returns the user profile property specified in the method.

I debugged the program and getting error at the line... TaxonomyField taxField = item["oiplbDepartment"] as TaxonomyField; that "Value does not fall in range".

The whole thing I am applying is in Visual Web Part.

How do I read the taxonomy field value?

1 Answer 1


It was how I did in one of my projects.

TaxonomyField tf = currentPublishingPage.ListItem.Fields[NEWS_TAGS_COLUMN_NAME] as TaxonomyField;
TaxonomyFieldValueCollection tfvc = currentPublishingPage.ListItem["Enterprise Keywords"] as TaxonomyFieldValueCollection; 

Read the Full article

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.