Я создал тестовую веб-страницу со следующим содержанием:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebForm1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<a href="WebForm1.aspx?DbName=Åker">Test</a><br />
<asp:Label runat="server" ID="lblTest"></asp:Label>
</form>
</body>
</html>
Это код:
using System;
using System.Linq;
using System.Xml.Linq;
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
var xmlStr = "<?xml version=\"1.0\" encoding=\"utf-8\"?><inspections> <inspection> <inspectionid>8</inspectionid> <databasename>Åker</databasename> <exported>false</exported> </inspection> </inspections>";
var inspections = XElement.Parse(xmlStr);
XElement inspection = (from elements in inspections.Elements("inspection")
where elements.Element("databasename").Value == Request.QueryString["DbName"]
select elements).FirstOrDefault();
lblTest.Text = (inspection != null).ToString();
}
}
Когда я нажимаю ссылку Test
, текст lblTestСтановится Истиной, поэтому запрос находит элемент как ожидалось.
В дополнение к решению Джона Скита, которое, вероятно, решает проблему, вы можете передать неверное значение inspectionId
параметра, что приведет к сбою поиска.