2011-02-16 3 views
1

스택 오버플로와 ASP.NET MVC에 새로운 기능입니다.이 프로젝트는 ASP.NET MVC에서 실행 가능합니까?

ASP.NET MVC를 사용하고자하는 프로젝트를 수행하도록 요청 받았지만 주위에 머리를 감쌀 때 문제가 있습니다. 올바른 방향으로 나를 도울 수 있기를 바랍니다.

프로젝트는 검색 포털의 일종입니다. 모든 페이지에는 검색 할 데이터 세트 (책을 기반으로 함)를 기본적으로 선택하는 드롭 다운 상자가 있습니다. 드롭 다운에서 검색 할 책의 이름입니다.

물론 검색 필드도 있습니다. 이 두 개체는 모든 페이지에 있으며 모든 페이지에서 동일한 기능을 수행하며이 두 개체를 통신 할 수 없습니다.

내가 별도의 partialviews에서 이러한 2가이 같은 검색 양식 필드 뭔가 조치를 생성하려면 :

domain.com/{bookname}/search/{searchterm} :이 드롭 다운 및 검색 상자에서 만든 것입니다.

그러나 searchfields partialview에서 어떤 방식으로이를 수행 할 수 있습니까? 아니면 각 컨트롤러에서이 값을 가져와야합니까?

나는 이것이 의미가 있기를 바랍니다.

+0

부분보기의 두 검색 필드가 각각 하나의 부분보기가 아닌 이유는 무엇입니까? 검색을 처리하는 컨트롤러가 하나 필요합니다. 나는 당신의 url이 search/bookname/searchterm이어야한다는 점에서 잘못되었다고 생각한다. 따라서 검색 컨트롤러는 검색 필드 중 하나에서 검색 쿼리를 처리 할 수 ​​있습니다. –

+0

요청 처리는 컨트롤러에서 수행되어야합니다. 뷰는 응답에 대한 출력을 생성하는 요청을 처리하지 않습니다. –

답변

0

BeginForm 도우미를 사용하여 드롭 다운 및 텍스트 상자가있는 부분보기 만들기 : 당신의 SearchController의 색인 작업에서 다음

<% using(Html.BeginForm("Index", "Search")) %> 
<% { %> 
    <%= Html.DropDownList("BookNames") %> 
    <%= Html.TextBox("SearchTerm") %> 
<% } %> 

를, 양식 모음에서 값을 잡을 수 또는 사용한다 당신의 드롭 다운의과 텍스트 상자의 ID입니다.

public ActionResult Index(FormCollection frmCollection) 
{ 
    // ... 
    // also you can redirect to another action/controller if you needed 
    // return RedirectToAction("...", "..."); 
} 

또는

public ActionResult Index(int bookNames, string searchTerm) 
{ 
    // ... 
    // also you can redirect to another action/controller if you needed 
    // return RedirectToAction("...", "..."); 
} 

희망이 도움이됩니다.

0

ASP.NET MVC를 사용하는 프로젝트 중 하나에서 유사한 검색 요구 사항을 구현했습니다. 그러나 단일 부분보기에서 드롭 다운 및 검색 기능을 사용할 수있었습니다.

자바 스크립트를 사용하여 선택한 값을 선택하고 domain.com/{criteria}/search/{searchWord} 패턴으로 사용자를 URL로 리디렉션했습니다.

이렇게하면 단일 컨트롤러를 사용하여 검색 결과를 볼 수 있습니다.

+0

하지만 JS에 의존하는이 프로젝트는 다음과 같을 수 없습니다 :/ –

+0

@Rasmus JavaScript를 사용할 수 없다면 질문에 매우 명확하게 작성하여 다른 사람들이 필요한 모든 정보를 갖도록하십시오. –

+0

@ Shiv 그래, 거기에 미안 : /하지만 거기에 방법이 있거나 그냥이 프로젝트에 대한 mvc입니까? –