2011-10-25 9 views
0

내보기에는 다양한 데이터를 가져 오는 테이블이 있습니다. 처음에는 해당 사용자가 실행 가능한 행만 표시합니다. 그러나 모든 행을 표시하는 옵션도 있습니다. 달성하기 위해 지금까지 "? isRequiredAction = true"및 "? isRequiredAction = false"의 href가있는 테이블 위에 두 개의 하이퍼 링크가 있습니다.보기에서 컨트롤러로 데이터를 전달하는 방법

public ActionResult Index(bool? isRequiredAction){ 
string userId = User.Identity.Name; 
bool ira = true; 
if (isRequiredAction != null) 
{ 
    ira = Convert.ToBoolean(isRequiredAction); 
} 
... 
return View(model); 

그래서, 지금 컨트롤러가 해당 링크를 클릭하여 생성 된 쿼리 문자열에서 그것의 매개 변수를 받고있다 : 컨트롤러에서, 나는 다음 있습니다. 이 쿼리로 URL을 더럽 히고 싶지 않기 때문에이 방법에 만족하지 않습니다. 내가 묻고있는 것을 성취하는 간단한 방법이 있습니까? 가능한 경우 양식 객체로 링크를 돌리는 것을 피하고자합니다. 감사.

+1

원하는 경우 게시 방법으로 보낼 수 있습니다. – Birey

답변

3

MSDN 도움말이 도움이됩니다.

보기에서 컨트롤러까지 HttpPost을 수행하거나 데이터를 매개 변수로 전달할 수 있습니다.

+1

모두가 MSDN 기사를 이해할 수 있다면 왜 stackoverflow와 같은 사이트가 필요할까요? –

0

당신은 예를 들어, 두 가지 custom routes를 만들 수 있습니다

  1. www.yourapp.com/home 그 후
  2. www.yourapp.com/home/showall

을 수행 할 수 있습니다 두 경로 모두 동일한 작업을 대상으로하거나이 경로 각각에 대해 고유 한 작업을 만듭니다. 너의 선택!

0

기술적으로 나는 링크 양식 객체를 만들고 싶지 않고 URL을 "더럽 히지"않기 때문에 필요에 맞는 적절한 솔루션이 있다는 것을 기술적으로 믿지 않습니다. URL 지저귐에 아무런 문제가 없으므로 첫 번째 방법을 계속 사용하는 것이 좋습니다. URL을 "더티 (dirtying)"함으로써 링크를 북마크 할 수 있습니다. 당신이 정말로 그것에 관심이 있다면, 당신은 두 가지 선택을 할 수 있습니다 :

(1) Ajax를 사용하십시오. 이렇게하면 URL이 영향을받지 않습니다. 그러나 북마크 기능이 없어집니다.

(2) URL 재 작성을 사용하여 URL을 "예쁘게"만드십시오. 이 방법은 URL을 "더럽 히는"방법과 비슷하지만 "꽤"사용합니다.

관련 문제