0
此代码是不行的过滤器使用参数
public HttpResponseMessage Get(string par) { String JsonData, JsonFromXML; XElement root = XElement.Load("http://www.mywebsite.com/mapdata_xml.xml"); IEnumerable<XElement> address = from el in root.Elements("marker") where (string) el.Attribute("province") == par orderby (string)el.Attribute("name") select el; var XMLData = ""; foreach (XElement el in address) XMLData = XMLData + el; //XMLData = "<markers>" + XMLData + "</markers>"; XmlDocument xd = new XmlDocument(); xd.LoadXml("<markers>" + XMLData + "</markers>"); JsonFromXML = JsonConvert.SerializeXmlNode(xd); JsonFromXML = JsonFromXML.Remove(0, 11); JsonFromXML = JsonFromXML.Substring(0, JsonFromXML.Length - 1); JsonData = JsonFromXML.Replace("\"@", "\""); return new HttpResponseMessage() { Content = new StringContent(JsonData) }; }
的Web API:http://localhost:55607/api/Test?par=%22Pursat%22
参数:PAR
问题:我有一个Web API(http://localhost:55607/api/Test?par=%22Pursat%22)。我想将参数“Pursat”传递给ASP.Net(public HttpResponseMessage Get(string par)name“Par”)。然后我什么也得不到。然而,当我像这样使用(where(string)el.Attribute(“province”)==“Pursat”)时,我可以从我的代码中获取数据。
此代码工作以及
public HttpResponseMessage Get(string par) { String JsonData, JsonFromXML; XElement root = XElement.Load("http://www.mywebsite.com/mapdata_xml.xml"); IEnumerable<XElement> address = from el in root.Elements("marker") where (string) el.Attribute("province") == "Pursat" orderby (string)el.Attribute("name") select el; var XMLData = ""; foreach (XElement el in address) XMLData = XMLData + el; //XMLData = "<markers>" + XMLData + "</markers>"; XmlDocument xd = new XmlDocument(); xd.LoadXml("<markers>" + XMLData + "</markers>"); JsonFromXML = JsonConvert.SerializeXmlNode(xd); JsonFromXML = JsonFromXML.Remove(0, 11); JsonFromXML = JsonFromXML.Substring(0, JsonFromXML.Length - 1); JsonData = JsonFromXML.Replace("\"@", "\""); return new HttpResponseMessage() { Content = new StringContent(JsonData) }; }
我想要通过使用参数 “相提并论”,而不是固定的数据 “菩萨” 查询数据。
你知道如何解决这个问题吗? 。