Мой сервисный уровень отправляет обратно DTO с сообщением Warning/Success/Info/Error на контроллер, который наследуется от базового контроллера, где я обрабатываю сообщения обычным образом.MVC - автоматически обрабатывает уведомления пользователей
Я не знаю, является ли моя реализация полной бессмыслицей, и мне действительно нужен совет!
DTO
Public Class ExecutionResult
Public Enum AlertType
Warning
Success
Info
[Error]
End Enum
Public Property Type() As AlertType
Public Property Message() As String
End Class
Базовый контроллер: (со свойством ExecutionResult, что можно получить доступ из каждого контроллера)
Public Class BaseController
Inherits System.Web.Mvc.Controller
Protected Overloads Overrides Sub OnActionExecuted(ByVal ctx As ActionExecutedContext)
Alert()
End Sub
Public Property executionResult As New ExecutionResult
Public Sub Alert()
If Not String.IsNullOrWhiteSpace(Me.executionResult.Message) Then
TempData.Add(Me.executionResult.Type, Me.executionResult.Message)
End If
End Sub
End Class
Контроллер:
...
Inherits BaseController
...
Function SomeFunction() As ActionResult
executionResult = _service.SomeFunctionInTheServiceLayer(viewModel)
End Function
затем отобразить сообщение в парциальном зрения с главной страницы
@For Each item As KeyValuePair(Of String, Object) In TempData
If (TempData.ContainsKey(item.Key)) Then
@<div class="alert [email protected]">
@item.Value
</div>
End If
Next
Если она работает вы, и вы довольны решением, все в порядке, нет? – Kenneth
Просто хочу знать, есть ли «лучшая практика» для этой ситуации, так как я думаю, что каждый должен как-то уведомлять пользователей в веб-приложениях MVC. – stare