繁体   English   中英

从数据类型下拉列表中获取值(Umbraco)

[英]Getting the Value from a Datatype Dropdown (Umbraco)

我想获取名称或者我应该说使用umbraco数据类型“dropdown”创建的下拉前值的值

服务下拉列表值

现在,当指定“id”时,它获取数字,我如何获得该“id”的值?

这是填充了值的id的下拉列表;

带ID的填充下拉列表

我如何获得价值名称? 而不是身份证?

这是Surface Controller;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Xml.XPath;
using Umbraco.Core.Services;
using Umbraco.Web.Mvc;

/// <summary>
/// Summary description for ContactSurfaceController
/// </summary>

namespace LiquidThinker2015
{
    public class ContactSurfaceController : SurfaceController
    {
        public object XPathModeIterator { get; private set; }

        public ActionResult ShowForm()
        {
            ContactModel myModel = new ContactModel();
            List<SelectListItem> ListOfServices = new List<SelectListItem>();
            XPathNodeIterator iterator = umbraco.library.GetPreValues(1435);
            iterator.MoveNext();
            XPathNodeIterator preValues = iterator.Current.SelectChildren("preValue", "");
            while (preValues.MoveNext())
            {
                string preValue = preValues.Current.GetAttribute("id","");
                ListOfServices.Add(new SelectListItem
                {
                    Text = preValue,
                    Value = preValue
                });
                myModel.ListOfServices = ListOfServices;
            }
            return PartialView("ContactForm", myModel);
        }

        public ActionResult HandleFormPost(ContactModel model)
        {
            var newComment = Services.ContentService.CreateContent(model.Name + " - " + DateTime.Now.ToString("dd/MM/yyyy HH:mm"), CurrentPage.Id, "ContactFormula");

            //DataTypeService myService = new DataTypeService();
            //var SelectedService = myService.GetAllDataTypeDefinitions().First(x => x.Id == 1435);
            //int SelectedServicePreValueId = myService.GetPreValuesCollectionByDataTypeId(SelectedService.Id).PreValuesAsDictionary.Where(x => x.Value.Value == model.SelectedService).Select(x => x.Value.Id).First();


            newComment.SetValue("contactName", model.Name);
            newComment.SetValue("companyName", model.Company);
            newComment.SetValue("emailFrom", model.Email);
            newComment.SetValue("telephoneNumber", model.Telephone);
            newComment.SetValue("dropdownServices", model.SelectedService);
            newComment.SetValue("contactMessage", model.Message);

            Services.ContentService.SaveAndPublishWithStatus(newComment);

            return RedirectToCurrentUmbracoPage();
        }
    }
}

谢谢

您在列表中对文本和值使用preValue

将其更改为:

ListOfServices.Add(new SelectListItem
{
    Text = preValues.Current.Value,
    Value = preValues.Current.GetAttribute("id","")
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM