ASP.NET MVC - Как я реализую проверку при использовании Репозиториев данных? (Visual Basic)

Я создал интерфейс UserRepository для общения с моим LINQ к уровню SQL Data, но я пытаюсь выяснить, как реализовать проверку.

Вот то, на что похожа моя подпрограмма AddUser

Public Sub AddUser(ByVal about As String, ByVal birthdate As DateTime, ByVal openid As String, ByVal regionid As Integer, ByVal website As String) Implements IUserRepository.AddUser
    Dim user = New User
    user.About = about
    user.BirthDate = birthdate
    user.LastSeen = DateTime.Now
    user.MemberSince = DateTime.Now
    user.OpenID = openid
    user.RegionID = regionid
    user.UserName = String.Empty
    user.WebSite = website

    dc.Users.InsertOnSubmit(user)
    dc.SubmitChanges()
End Sub

И затем мой контроллер будет просто звонить AddUser(...)

Но у меня нет малейшего представления о том, как реализовать и сторону клиента и серверную проверку на этом.
(Я думаю, что предпочел бы использовать Ajax jQuery и делать всю проверку на сервере, но я полностью открыт для мнений),

Править:

Ответ @vijaysylvester был прекрасен, я просто думал, что покажу пример кода того, как я реализовал его.

UserService.vb

Imports System.ComponentModel.DataAnnotations

Namespace Domain

     _
    Partial Public Class User : End Class

    Public Class UserMetaData

         _
         _
        Public UserName As String

         _
         _
        Public Email As String

         _
        Public WebSite As String

         _
        Public About As String

    End Class

#Region "Interface"
    Public Interface IUserService
        Sub UpdateUser(ByVal id As Integer, ByVal about As String, ByVal birthdate As DateTime, ByVal openid As String, ByVal regionid As Integer, ByVal username As String, ByVal website As String)
        Sub UpdateUserReputation(ByVal id As Integer, ByVal AmountOfReputation As Integer)
        Sub CloseUser(ByVal id As Integer)
        Sub OpenUser(ByVal id As Integer)
        Function GetAllUsers() As IList(Of User)
        Function GetUserByID(ByVal id As Integer) As User
    End Interface
#End Region


#Region "Service"
    Public Class UserService : Implements IUserService

        Private _UserRepository As IUserRepository

        Public Sub New(ByVal UserRepository As IUserRepository)
            _UserRepository = UserRepository
        End Sub

        Public Sub UpdateUser(ByVal id As Integer, ByVal about As String, ByVal birthdate As Date, ByVal openid As String, ByVal regionid As Integer, ByVal username As String, ByVal website As String) Implements IUserService.UpdateUser
            Dim user = _UserRepository.GetUserByID(id)
            user.About = about
            user.BirthDate = birthdate
            user.RegionID = regionid
            user.UserName = username
            user.WebSite = website

            _UserRepository.UpdateUser(user)
        End Sub

        ''# And the rest of my methods.
    End Class
End Namespace

1
задан Community 23 May 2017 в 12:13
поделиться

2 ответа

Хотя имеет смысл проводить валидацию на стороне сервера и клиента вручную, я бы сказал, что можно использовать фреймворки валидации с открытым исходным кодом, такие как XVal.

Перейдите по ссылке ниже.

Ссылка на XVal

Это так же просто, как просто настроить свойства, которые необходимо проверить.

Например,

[Required] [StringLength(50)] public string Name { get; set; }

Приведенный выше фрагмент кода проверяет, является ли имя допустимой строкой и ее размер не превышает 50.

Существует множество встроенных валидаторов (, включая регулярные выражения ), которые мы можем использовать для разных типов данных, таких как Date.

Надеюсь, это поможет.

Спасибо, Виджай.

2
ответ дан 2 September 2019 в 23:46
поделиться

Создайте частичный класс вашей пользовательской модели и добавьте валидацию для ваших входных данных. Если у вас уже есть помощники html, созданные для проверки в вашем представлении (обычно выполняются автоматически при создании нового строго типизированного представления), вы можете просто поместить в свой контроллер оператор try catch, чтобы перехватить ошибки и передать их обратно в представление через состояние модели. .

Посмотрите это: http://www.asp.net/mvc/tutorials/validation-with-the-data-annotation-validators-cs

Кажется, объясняет немного лучше, чем мой пробег на посту ...

0
ответ дан 2 September 2019 в 23:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: