我有以下簽名用asp.net mvc的動作奇怪的行爲過濾AttributeUsage
[AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
public class UnitOfWorkAttribute : ActionFilterAttribute
根據MSDN的行爲過濾器:
該物業的AllowMultiple指示是否的 你的屬性的多個實例可以存在於一個元素上。如果設置爲true,則允許多個 實例;如果設置爲false(默認值),則只允許有一個 實例。
在MVC中,行爲似乎有點奇怪。當我用這個屬性修飾動作時,我發現過濾器的OnActionExecuting
方法執行了兩次。
該過濾器僅在操作上聲明,而不是在控制器上聲明,並且我清除了任何全局過濾器。有人可以解釋這種行爲嗎?
只是_AllowMultiple_這會導致_OnActionExecuting_被調用兩次,或者你真的用兩個屬性實例來修飾你的動作嗎? – Codo
@Codo,不,我不需要多個實例,因此將AllowMultiple設置爲false可以解決問題,但它不能解釋它。可能是asp.net mvc中的錯誤? –
這個動作確實沒有發射兩次?只有屬性? – dknaack