기본적으로 많은 RouteValueDictionary
을받는 도우미를 작성하고 많은 링크를 반환합니다. 현재 경로 값 (예 : /Products/Details/3
에서 /Products/Details/3
에 대한 링크가 없어야 함)에 대한 링크를 건너 뛰고 다른 URL 매개 변수를 무시하고 싶습니다. 내가 생각할 수있는 어떤ASP.NET MVC의 현재 경로에 대한 링크를 건너 뛰거나 비활성화합니다.
가 있는지 확인하는 것입니다 대상 행동과 컨트롤러 이름이 현재 사람에 널거나 같은
;
서로 다른 목적지 경로 값이 정의되어 있고 그 반대의 경우도 마찬가지입니다.
더 좋은 방법이 있습니까?
편집 :
일부 컨텍스트 : 나는 많은 모델, 많은 컨트롤러, 많은 작업을해야합니다. 나는 어디서나 같은 물건을 반복해서 쓰는 아이디어가 마음에 들지 않으므로 일반적인 해결책을 코드화하기로 결정했다. 사용 권한 인식 아이콘 링크 (나는 힌트를 요청했다. here).
저는 PermissionAwareIconAction
클래스를 가지고 있습니다.이 클래스는 Icon
, HasPermission()
메쏘드, URL을 얻기위한 델리게이트와 다른 것들을 가지고 있습니다. 물론, 코드가 다른 특정 작업을 추가,
CrudAction.CreateCrudActions<Vendors>(Permissions.CreateVendors,
Permissions.EditVendors,
Permissions.DetailsVendors,
Permissions.DeleteVendors);
과 : Global.asax.cs
내부 나는 다음과 같은 코드로,이 모든 물건을 포함하는, ActionTable
을 채우기 위해 몇 가지 방법을 문의하십시오. 나는 또한 내 컨트롤러의 동작을 장식
:
[Action(typeof(Vendors), "Create")]
public ActionResult Create()
{
...
}
내부 뷰, 내가 할 :
, 하나의 대상에 관한Index
마음에 들지 뷰에서
<%= Html.IconActionLinks<Vendors>() %>
및
<%= Html.IconActionLinks<Vendors>(Model) %>
개체와 관련된보기에서 Details
과 같습니다.
이렇게하면 권한은 하나의 클래스로 정의됩니다. 또한 표시 할 코드는 Edit
에 대한 사용 권한을 기반으로 한 링크를 표시하는 것과 동일한 코드로 사용자가 Edit
동작을 볼 수 있도록 허용하거나 허용하지 않습니다. 나는 거의 끝났어요
은 (내가이 완료있을 때 내가 무슨 짓을했는지 다시 시작, 내 앞의 질문에 답변을 게시 할 예정).
지금 나는이 작은 조각을 Details
보기 Details
아이콘, Index
아이콘 Index
보기 등을 방지하기 위해 아직있다.
긴 게시물을 용서해주세요.
? 어떤 이점이 있습니까? – UpTheCreek
조치 아이콘 (편집, 세부 사항, 삭제 등)을 표시하고 있습니다. 각 페이지에 많은 아이콘을 표시하고 있습니다. 예를 들어, 세부 정보 페이지에 "세부 정보"아이콘을 표시하는 것이 부적절한 것 같습니다. – giorgian