проблема JavaScript с web.config - PullRequest
       4

проблема JavaScript с web.config

0 голосов
/ 19 апреля 2011

пытается получить доступ к файлу web.config с помощью js и .net и получить страницу с ошибкой «error.html? Aspxerrorpath = / testing2.aspx».

<%@ Page Language="C#" %>


<!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>Untitled Page</title>

<script type="text/javascript" runat="server">

    function ReadConfigSettings()
    {

       var v1 = '<%= ConfigurationManager.AppSettings["var1"].ToString() %>'
       alert(v1);

    }
</script>

</head>
<body>
    <form id="form1" runat="server">
   <div><asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="ReadConfigSettings()" /></div>
    </form>
</body>
</html>

Ответы [ 2 ]

1 голос
/ 19 апреля 2011

Как уже объяснил rsbarro , ваш код, вероятно, вызывает исключение из-за отсутствия этого параметра.

Теперь я не совсем уверен, чего вы пытаетесь достичь, однако,Название вашего поста и примеры кода, кажется, указывают на то, что вы хотите извлечь какое-то значение из файла конфигурации всякий раз, когда вы нажимаете кнопку.Однако, это не то, что здесь происходит.

Помните, что все, что находится между <% %>, оценивается на сервере.Поэтому, прежде чем ваша страница будет отображена, она попытается запустить этот код и вставить его в ответ, указанный вами.В конце вы получите статическое значение, встроенное в ваш скрипт.

<script type="text/javascript" runat="server">

    function ReadConfigSettings()
    {

       var v1 = 'MyStaticValue'; //This was rendered on the server
       alert(v1);

    }
</script>

Если вы хотите сделать что-то большее, чем это, вам придется делать это через AJAX.У вас есть несколько вариантов здесь:

  1. Создать веб-сервис ( .asmx или WCF )
  2. Использовать Методы страницы
  3. Использование UpdatePanel
1 голос
/ 19 апреля 2011

Ваш пример кода выдаст исключение, если в разделе appSettings не определено «var1».

Вы можете попробовать это вместо:

<%= ConfigurationManager.AppSettings["var1"] %>

Этот оператор будет обрабатывать случай, когда "var1" не определено.

Чтобы определить appSetting, у вас должно быть что-то вроде этого в вашем web.config:

<configuration>
   ...
   <appSettings>
      <add key="var1" value="test" />
   </appSettings>
   ...
</configuration>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...