Asp.net web api 如何使用字符串参数?

Asp.net web api 如何使用字符串参数?,asp.net-web-api,entity-framework-6,Asp.net Web Api,Entity Framework 6,我目前有一个使用EF6的web api Get方法,它接受一个名为serial的int参数。我想从URI中查找extserial,而不是主键序列 这是我的Get,我有localhost/api/AH?serial=1 // GET api/AH/5 [ResponseType(typeof(Transmital))] public IHttpActionResult GetTransmital(int Serial) { T

我目前有一个使用EF6的web api Get方法,它接受一个名为serial的int参数。我想从URI中查找extserial,而不是主键序列

这是我的Get,我有localhost/api/AH?serial=1

// GET api/AH/5
        [ResponseType(typeof(Transmital))]
        public IHttpActionResult GetTransmital(int Serial)
        {
            Transmital transmital = db.Transmitals.Find(Serial);
            if (transmital == null)
            {
                return NotFound();
            }

            return Ok(transmital);
        }
我需要通过localhost/api/AH?ExtSerial=ABC123获取它

出于某种原因,它不会采取以下措施

// GET api/AH/5
        [ResponseType(typeof(Transmital))]
        public IHttpActionResult GetTransmital(string ExtSerial) //or [FromUri]string ExtSerial
        {
            Transmital transmital = db.Transmitals.Find(ExtSerial);
            if (transmital == null)
            {
                return NotFound();
            }

            return Ok(transmital);
        }

您应该使用IHttpActionResult接口

试试这个:

public IHttpActionResult GetTransmitalsExtSerial([FromUri] string ExtSerial)
        {
            //return Ok(ExtSerial.ToString());
            return Ok(db.Transmitals.Where(exs => exs.ExtSerial == ExtSerial));
        }