2013-05-16 3 views
0

Я новичок в синтаксисе MVC4 и Razor. Я извиняюсь заранее, если это слишком простой вопрос, я не смог найти ответ на поиск ...MVC4 Страница бритвы, не отображающая содержимое

Я хотел сделать что-то вдоль линий следующее ...

Sample 1

@if (Model.UserDoesNotHaveAccess) 
{ 
    <h1>You do not have access</h1> 
    Response.End(); 
} 

<h1> You do have access </h1> 

Когда я запускаю страницу с примерами 1 кода я получаю пустую страницу, если UserDoesNotHaveAccess правда - ничего не отображается. Когда я запускаю страницу с образцом 2 кода, тем не менее он работает ... Я не хочу, чтобы нужно было вложить все в оператор if else, как я сделал в примере 2. Есть ли простой способ получить что-то похожее на образец 1, работающий ?

Пример 2

@if (Model.UserDoesNotHaveAccess) 
{ 
    <h1>You do not have access</h1>  
} 
else 
{ 
    <h1> You do have access </h1> 
} 
+0

Обычно вы перенаправляетесь на другое действие/представление в действии, если пользователь не имеет доступа к этой странице. Или вы можете использовать атрибут Authorize для этого. Я не думаю, что вам нужна такая логика в этом. – Banford

+0

Спасибо, я думаю, мы будем делать перенаправление, поскольку это устаревшее приложение. –

+2

унаследованное приложение MVC4? – James

ответ

3

Если вы хотите ограничить доступ украсить действие контроллера с [Authorize] Они будут перенаправлены на страницу входа

Если вы используете роли, которые вы можете также указать, какие роль имеет доступ, такой как

[Authorize(Roles ="Admin")]

Тогда любой, кто не в этой роли, также будет перенаправлен на логин.

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