【发布时间】:2016-07-16 02:59:01
【问题描述】:
-
此代码无效
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) }; }
网络接口:http://localhost:55607/api/Test?par=%22Pursat%22
参数:par
问题:我有一个 Web API (http://localhost:55607/api/Test?par=%22Pursat%22)。我想将参数“Pursat”传递给 ASP.Net(公共 HttpResponseMessage Get(字符串 par)名称“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) }; }
我想通过使用参数“par”而不是固定数据“Pursat”来查询数据。
你知道如何解决这个问题吗?
【问题讨论】:
标签: c# asp.net-mvc parameters linq-to-xml