콘텐츠의 수정 URL을 백엔드에서 문자열로 가져 오려고하는데 catch는 내가 워크 플로우 작업에 포함되어 있으므로 할 수 없습니다. Url.Action ... 또는 Url.ItemEditLink ... 또는 다른 UrlHelpers를 컨트롤러 또는 뷰인 것처럼 사용하십시오. 또한 워크 플로우 내부에 있지만 필요한 컨텐트는 workflowContext 또는 activityContext의 일부가 아니므로 해당 컨텍스트 나 토큰 중 하나를 사용할 수 없습니다.UrlHelpers 또는 Orchard 토큰이없는 문자열로 콘텐츠 편집 URL 가져 오기
콘텐츠 메타 데이터와 사이트 baseUrl을 가져 와서 수동으로 빌드하려고하면 해결책이 될 수 있지만이 방법은 오류가 발생하기 쉽습니다.
감사합니다.
public class MyClass : Task
{
private readonly RequestContext _requestContext;
...
public MyActivity(RequestContext requestContext, ...)
{
_requestContext = requestContext;
...
}
...
public override IEnumerable<LocalizedString> Execute(WorkflowContext workflowContext, ActivityContext activityContext)
{
var content = ... get using ID
var helper = new UrlHelper(_requestContext);
var baseurl = new Uri(_orchardServices.WorkContext.CurrentSite.BaseUrl);
Uri completeurl = new Uri(baseurl, helper.ItemDisplayUrl(content));
yield return T("Done");
}
}
가 실제로 반 수동으로 열린 우리당을 구축 할 것을 밝혀,하지만이 방법으로 문제가 없었어요 :
전자 메일 메시지 본문에 URL이 필요합니까? – Lawyerson
예.하지만 URL이 필요한 컨텐트는 워크 플로우 또는 현재 컨텍스트의 일부가 아니므로 사용할 수있는 토큰이 없습니다. 기본적으로 전자 메일 활동과 동일한 활동이 있지만 백엔드에서 본문을 만들고 URL을 포함해야합니다. – Velair
개인적으로이 작업을 수행하지 않았으므로 완전한 대답을 제공 할 수는 없지만 사용자 지정 토큰을 사용하여 원하는 컨텐트 항목을 가져 와서 기존 EditUrl 및 AbsoluteUrl 토큰과 연결할 수 있습니다. http://arkleseizure.net/custom-tokens-in-orchard-cms – Lawyerson