Объявите функции или метод в представлении - PullRequest
7 голосов
/ 02 декабря 2011

Поскольку на страницах .aspx в .NET MVC больше нет кода, кажется, невозможно объявить функцию или метод direclty на странице .aspx (представление).

В классическом ASP я мог бы добавить тег сценария с runat = "server" для объявления локальной функции.

У каждого клиента есть свое собственное представление.Метод в контроллере отправляет правильное представление правильному клиенту.

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

Поэтому я подумал о добавлении некоторой логики непосредственно ввид.Возможно ли это?

1 Ответ

7 голосов
/ 02 декабря 2011

В классическом ASP я мог бы добавить тег сценария с runat = "server", чтобы объявить локальную функцию.

Полагаю, вы имеете в виду в классических веб-формах, потому что в классическом ASP атрибута runat="server" не существует.

Таким образом, вы можете сделать то же самое в представлении ASP.NET MVC, используя механизм представления WebForm:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

    <script runat="server" type="text/C#">
        public string Foo()
        {
            return "bar";
        }
    </script>

    <div><%= Foo() %></div>

</asp:Content>

Теперь, если это хорошая идея, и если вы должны это сделать, это совсем другая тема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...