2012-05-14 2 views
0

Я начинаю начинать. Я хочу использовать некоторые объекты, созданные на Site.Master.cs в Site.Master. Есть ли простой способ сделать это?Как передать объект от .cs до .aspx

Я знаю, как это сделать в MVC (используя представление (объект)). Но как я могу сделать это в обычном веб-приложении ASP .net?

ответ

2

Я не понимаю, что именно вы хотите сделать.

Если вы хотите, чтобы вставить некоторые строки в заголовке тега вы можете вставить следующую вещь в SiteMaster.master файл:

<img src="<%= Page.ResolveUrl("~/") %>images/logo.png"> 

вместо:

<img src="images/logo.png"> 

В первом случае будет рассчитан путь от корня вашего приложения. Во втором случае будет относительная ссылка. Это связано с тем, что сервер РАССЧИТАЕТ значение Page.ResolveUrl ("~") функция и НАПРАВЛЯЕТ его в src тег.

Вы можете сделать то же самое с любыми другими методами, если вы их правильно определили. Но я бы не рекомендовал вам внедрять сложную логику в .aspx-файлах (или .master-файлах). Потому что вы можете столкнуться со многими трудностями при тестировании и стилизации такого приложения.

Есть другие серверные теги:

  1. <%%> - встроенный блок кода является сервер код, который выполняется во время визуализации фазы страницы. Код в блоке может выполнять операторы программирования и функции вызова в текущем классе страниц. Description and examples
  2. <% =%> - наиболее полезно для отображения отдельных фрагментов информации.Description and examples
  3. <% #%> - синтаксис выражения для передачи данных. Description and examples
  4. <% $%> - выражение ASP.NET. Description and examples
  5. <% @%> - Директива Синтаксис. Description and examples
  6. <% - -%> - Комментарии на стороне сервера. Description and examples
  7. <%:%> как <% =%> - Но HtmlEncodes выход (новый с Asp.Net 4). Description and examples

Другой способ: вы можете использовать JSON, чтобы отправить некоторые данные клиенту, а затем обработать его с помощью JavaScript. Взгляните на this project.

0

Любое общедоступное или защищенное свойство или метод в Site.Master.cs будет доступно с Site.Master.

но как вызвать код C# в aspx?

Существует несколько способов, включая the <%= %> construction и databinding syntax.

Это поможет, если вы объясните, чего вы пытаетесь достичь.

+1

но как вызвать код C# в aspx? –

2

Если @Page директивы в файле .aspx имеет Inherits="XYZ" где XYZ является классом, объявленным в файле .cs, вы можете просто добавить protected поля в класс и присвоить ему значение. Вы сможете получить к нему доступ в файле .aspx, просто используя его имя.

Вы также можете использовать HttpContext.Items property держать объекты во время одного запроса:

HttpContext.Current.Items["SavedItem"] = "hello world"; 

и использовать его в странице:

<%= ((string)Context.Items["SavedItem"]) %> 
+0

У меня возникла ошибка, когда я пытался сказать то, что вы мне сказали, «не может применить индексирование к выражению типа« system.web.httpcontext » –

+0

@JoshuaHu Я пропустил« .Items »во второй строке. –

Смежные вопросы