Deutsch

Воспоминание ASP NET MVC 02.01.2025

5 дней назад, 07:27
Re: Воспоминание ASP NET MVC 02.01.2025
 
uscheswoi_82 коренной житель
в ответ uscheswoi_82 5 дней назад, 07:10

Помойму в ASP NET MVC1, и в MVC2 точно - нужно использовать глобальную переменную ViewData,а в современном ASP NET Razor нужно использовать глобальную переменную ViewBag. В классическом ASP NET WebForms можно создавать элементы управления, и в ASP NET MVC2 вроде бы можно создавать элементы управления. Допустим нам нужно создать меню, вот элемент управления меню ViewUserControl1.ascx:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<ul style="list-style-type:none;margin:0;padding:0;overflow:hidden; background-color:blue; color:white;">
<% foreach (String i in (IEnumerable<String>)ViewData["x"])
   { %>
     <li style="float:left; display:block;text-align:center;padding:20px;text-decoration:none;"><% = i%></li>
<% } %>
</ul>



А вот шаблон ViewMasterPage1.Master:

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>
<!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><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
  </head>
  <body>
    <div>
      <asp:ContentPlaceHolder ID="MainContent" runat="server">
        
      </asp:ContentPlaceHolder>
      <% 
        String[] arrItems = {"Главная страница", "Продукты", "О нас..."};            
        ViewData["x"] = arrItems;  
        Html.RenderPartial("ViewUserControl1", ViewData);
      %>    
    </div>
  </body>
</html>


Может быть это изврат, но если вызвать это в веб браузере, то будет что-то такое:


Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
 

Перейти на