Ресурс ASP.net MVC не найден - PullRequest
       8

Ресурс ASP.net MVC не найден

0 голосов
/ 15 декабря 2009

У меня есть PartsController со следующим частичным кодом:

Function Search(ByVal searchtext As String, ByVal SearchType As String) As ActionResult

If SearchType = "PARTNAME" Then
Dim SearchResult = From p In _entities.PartList _
Where p.PARTNAME = searchtext _
Select p
Return View()
End If
If SearchType = "NSN" Then
Dim SearchResult = From p In _entities.PartList _
Where p.NSN = searchtext _
Select p
Return View()
End If
Return View("UnknownType")
End Function
Function Result(ByVal id As String, ByVal SearchResult As String) As ActionResult
Return View(SearchResult)

End Function

Мое представление SearchResult хранится в Views / Parts / SearchResult.aspx. Однако, когда я запускаю приложение, я получаю Ресурс не найден Запрошенный URL / PartsController / Search

Вопрос 2: Может ли кто-нибудь указать мне учебник (ы) VB, который отображает результаты поиска в представлении? То есть мне нужны примеры того, как собрать представление SearchResult, чтобы оно извлекало только те элементы из моей таблицы, где есть совпадение в строке поиска.

Большое спасибо за вашу помощь!

Global.asax:

' Note: For instructions on enabling IIS6 or IIS7 classic mode, 
' visit http://go.microsoft.com/?LinkId=9394802

Public Class MvcApplication
Inherits System.Web.HttpApplication

Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
routes.IgnoreRoute("{resource}.axd/{*pathInfo}")

' MapRoute takes the following parameters, in order:
' (1) Route name
' (2) URL with parameters
' (3) Parameter defaults
routes.MapRoute( _
"Default", _
"{controller}/{action}/{id}", _
New With {.controller = "Home", .action = "Index", .id = ""} _
)
routes.MapRoute( _
"Root", _
"", _
"(controller)/(action)/(id)", _
New With {.controller = "Home", .action = "Index", .id = ""} _
)
End Sub

Sub Application_Start()
RegisterRoutes(RouteTable.Routes)
End Sub
End Class

Обратите внимание, что это приложение работает на сервере Windows 2003 (IIS6). Есть ли какие-либо дальнейшие изменения, которые я должен внести в global.asax?

Еще раз спасибо, Sid

Ответы [ 2 ]

1 голос
/ 15 декабря 2009

Попробуйте этот URL: http://servername/Parts/Search, обратите внимание, я удалил суффикс контроллера. При конфигурации по умолчанию маршрутизация необходимо не указывать часть Controller имени класса конкретного контроллера

Поскольку вы не предоставили достаточно информации, трудно точно сказать, в чем причина. Одна из наиболее распространенных причин - неправильные конфигурации в iis. Пожалуйста, обратитесь к этому: Использование ASP.NET MVC с различными версиями IIS

Что касается учебника vb, он доступен здесь: http://www.asp.net/learn/mvc/tutorial-21-vb.aspx

1 голос
/ 15 декабря 2009

Вы пробовали URL: / Parts / Search?

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

что-то вроде:

Function AddQuerySearchCriteria(ByVal query As IQueryable, ByVal searchCriteria As SearchCriteria) As IQueryable
        If Not String.IsNullOrEmpty(searchCriteria.Keyword) Then
            Dim keyword As String = searchCriteria.Keyword.ToLower
            query = query.Where(customer=, Greater, (customer.FirstName.ToLower.Contains(keyword))
        End If
        Return query
End Function

Затем ваш контроллер вызовет эту функцию, чтобы вернуть данные в представление SearchResults.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...