나는 개인적으로 내보기에 문을 당신이 역할을 사용하는 경우 특히 그들은 쉽게, 복잡 얻을 시작할 수 있다면 가진의 팬이 아니에요.
이렇게하면 피하는 것이 더 좋습니다. 이 멀리 추상화처럼
하는 논리가 포함 된 HTML 도우미를 만듭니다
namespace System.Web.Mvc
{
public static class HtmlHelperExtensions
{
public static MvcHtmlString UserMessage(this HtmlHelper htmlHelper)
{
string welcomeFormat = "Welcome, {0}";
var isAuthenticated = htmlHelper.ViewContext.HttpContext.User.Identity.IsAuthenticated;
var name = htmlHelper.ViewContext.HttpContext.User.Identity.Name;
var message = isAuthenticated ? string.Format(welcomeFormat, name) : string.Format(welcomeFormat, "anonymous!");
return new MvcHtmlString(message);
}
}
}
전화 같은 내보기 내에서이 방법
<p>@Html.UserMessage()</p>
당신이 새로운 경우를 헬퍼 확장을위한 코드가 웹 개발에 다소 압도적으로 보일지 모르지만, 결국 한 번만 쓰고 결국에는 다른 곳에서 호출하는 데 사용하는 코드는 훨씬 간단하고 재사용 할 수 있습니다.
http://www.codeproject.com/Articles/649394/ASP-NET-MVC-Custom-HTML-Helpers-Csharp
업데이트
도이 기술을 언급하는 것을 잊었다 다시 경우 문을 방지 : 여기
는 추가 정보를 html로 헬퍼에 대한 기사입니다.
두 개의 부분보기를 작성하면 _auth.cshtml
& _unauth.cshtml
이 표시됩니다. 이것은 또한 사용할 수 있습니다
@Url.Action("FooContent", "Contoller");
:
사용자가 & 반환
public ActionResult FooContent()
{
if (User.Identity.IsAuthenticated)
{
return PartialView("_auth");
}
else
{
return PartialView("_unauth");
}
}
는 다음과 같은보기 내에서 작업을에서 호출 관련 부분, 즉 인증되면 확인 작업을 만들기 역할을 확인하고 다른 부분을 반환합니다.
감사합니다. 두 답변을 모두 사용해보고 곧 사용해 보겠습니다. 여기에 모범 사례가 없다고 생각하니? 여기에 몇 가지 웹 디자인 패턴이 있습니까? – user1025852
개인적인 선택은 실제로 당신이 선호하는 솔루션을 시도해보십시오.:) – hutchonoid
완전히 내 대답에 업데이트 된 방법을 잊어 버렸습니다. 나는 if 문보다 더 나은 방법이라고 생각한다. :) – hutchonoid