У меня есть контроллер с именем TicketsController.vb, с результатом действия:
'
' GET: /Tickets/Details/5
Public Function Details(ByVal id As Integer) As ActionResult
ViewData("OpenTixCount") = ticketRepository.countOpenTickets.Count()
ViewData("UrgentTixCount") = ticketRepository.countUrgentTickets.Count()
ViewData("HighTixCount") = ticketRepository.countHighTickets.Count()
ViewData("NormalTixCount") = ticketRepository.countNormalTickets.Count()
ViewData("LowTixCount") = ticketRepository.countLowTickets.Count()
Dim ticket As hdCall = ticketRepository.GetTicket(id)
If ticket Is Nothing Then
Return View("NotFound")
Else
ViewData("MyTicketID") = ticket.CallID
ViewData("UserThatLogged") = ticket.hdUser.RealName
ViewData("CustomerName") = ticket.hdCustomer.CustomerName
ViewData("TimeLogged") = ticket.loggedOn.ToLongDateString & " " & ticket.loggedOn.ToLongTimeString
ViewData("CustomerID") = ticket.CustomerID
ViewData("CustomerEmail") = ticket.hdCustomer.Email
Dim custID As Integer = ticket.CustomerID
Dim TicketsForCustomer = ticketRepository.GetTicketsForThisCustomer(custID).Count()
ViewData("TicketsForCustomerCount") = TicketsForCustomer
Dim dataContext As New CustomerServicesDataContext
ViewData("TicketStatus") = New SelectList(dataContext.hdStatus, "StatusID", "Status", ticket.StatusID)
ViewData("TicketType") = New SelectList(dataContext.hdCategories, "CategoryID", "Title", ticket.CategoryID)
ViewData("TicketPriority") = New SelectList(dataContext.hdPriorities, "PriorityID", "Priority", ticket.PriorityID)
ViewData("CompanyType") = New SelectList(dataContext.hdCompanies, "CompanyID", "Company", ticket.CompanyID)
ViewData("CallDetails") = ticket.CallDetails
End If
Return View(ticket)
End Function
Я также добавил еще одного клиента, который предназначен для получения списка заявок по идентификатору клиента. Код, который я использую для этого:
'
'GET: /Tickets/Customer/1
Public Function Customer(ByVal custID As Integer) As ActionResult
ViewData("OpenTixCount") = ticketRepository.countOpenTickets.Count()
ViewData("UrgentTixCount") = ticketRepository.countUrgentTickets.Count()
ViewData("HighTixCount") = ticketRepository.countHighTickets.Count()
ViewData("NormalTixCount") = ticketRepository.countNormalTickets.Count()
ViewData("LowTixCount") = ticketRepository.countLowTickets.Count()
Dim cust As hdCustomer = customerRepository.GetCustomerDetails(custID)
Dim tickets = ticketRepository.FindAllTicketsForThisCustomer(custID)
ViewData("CustomerName") = cust.CustomerName
ViewData("CustomerEmail") = cust.Email
Dim TicketsForCustomer = ticketRepository.GetTicketsForThisCustomer(custID).Count()
ViewData("TicketsForCustomerCount") = TicketsForCustomer
Return View(tickets)
End Function
Однако, когда я, например, открываю страницу / Tickets / Customers / 1 , я получаю сообщение об ошибке:
Словарь параметров содержит
пустая запись для параметра 'custID' из
необнуляемый тип 'System.Int32' для
метод 'System.Web.Mvc.ActionResult
Клиент (Int32) 'в
'CustomerServicesHelpdesk.TicketsController.
Чтобы сделать параметр необязательным, его тип
должен быть либо ссылочным типом, либо
Обнуляемый тип. Имя параметра:
Параметры
Я не совсем уверен, где я иду не так, но может ли это быть, потому что у меня есть 2 ActionResults, ищущих похожие маршруты?
Спасибо за любую помощь заранее.