ASP.Net MVC "вошли" лучшие практики в представлении / разметка - PullRequest
2 голосов
/ 20 декабря 2010

Быстрый вопрос. Если бы я хотел сказать, иметь кнопку входа в систему, если пользователь не вошел в систему, и какую-нибудь другую разметку, если пользователь вошел в систему, какой будет лучший подход?

Я не хочу идти с

<% if(user.loggedIn){ %>
    <!-- do something -->
<% }else{ %>
    <!-- do something else -->
<% } %>

подход, так как я ненавижу код в моей разметке. Буду ли я далеко от базы, если я подумаю, что «симпатичный» способ сделать это - создать пользовательский элемент управления для этого? а потом есть код в коде контроля пользователя? Кто-нибудь может дать мне быстрый и грязный пример?

Ответы [ 4 ]

6 голосов
/ 20 декабря 2010
<% 
   if (Request.IsAuthenticated)
   {
%>
        Welcome <%: Page.User.Identity.Name%>!
<%
   }  else {
%>
       Login something     
<% } %>
3 голосов
/ 20 декабря 2010

Я не хочу идти с ...

правильным подходом.

и затем иметь код в коде контроля пользователя

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

2 голосов
/ 20 декабря 2010

В этом случае код, который вы пишете, является частью слоя View, поскольку он напрямую связан с тем, какой фрагмент HTML отображать пользователю.

Если вам не нравится помещать какой-либо код в свой кодВ таком случае возможно, что шаблон MVC - это не то, что вы ищете.Этот вид разделения предназначен для того, чтобы вы могли сохранять связанный с ним код в представлениях.

Если вас больше беспокоит беспорядочный код, вы можете попробовать Razor View Engine , который поставляетсякак часть MVC3.Это гораздо более аккуратный (по моему мнению) способ кодирования ваших представлений.

0 голосов
/ 20 декабря 2010

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

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

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