2015-02-07 4 views
0

나는 그런 전망이 :get-query 매개 변수를 관리하는 방법은 무엇입니까?

@model MvcA.Models.SellsLiveSearch 
@using (Html.BeginForm("Search","Search",FormMethod.Get)) { 
    @Html.ValidationSummary(true) 
    <fieldset> 
     <legend> parametrs</legend> 
     <select id="HowManyRoom" name="HowManyRoom"><option></option> 
     <option value="1">1</option> 
     <option value="2">2</option> 
     <option value="3">3</option> 
     <option value="4">4</option> 
     <option value="5>">4</option> 
     </select> 

     <select id="TimeRange" name="TimeRange"><option></option> 
     <option>s</option> 
     <option>ss</option> 
     <option>sss</option> 
     <option>ssss</option> 
     </select> 



     <input type="checkbox" name="TypeHome" value="1" /> 
     <input type="checkbox" name="TypeHome" value="2" /> 
     <input type="checkbox" name="TypeHome" value="3" /> 
     <input type="checkbox" name="TypeHome" value="4" /> 


     <p> 
      <input type="submit" value="Search" /> 
     </p> 
    </fieldset> 
} 

할 방법 대신 GET 요청에 빈 매개 변수의

(예 : 검색 HowManyRoom = & TimeRange = & TypeHome = 1)

전달 된 주소는 입니다 (예 : search? TypeHome = 1)

편집 :

[HttpGet] 
     public ActionResult Search(SellsLiveSearch Dol) 
     { return View(); } 

전부 내가

+0

당신은 컨트롤러 메소드의 서명을 표시해야합니다. –

+0

@Stephen Muecke, 나는 덧붙인다 ... 나는 지금 막 쓰기 시작했다. 컨트롤러의 모양을 수정하고 필요한 경우 볼 수 있습니다. – forven

답변

0

양식이 모든 HTML 양식 요소를 다시 게시 할 예정 썼다. 그들을 제거하는 유일한 방법은 javascript를 사용하여 양식을 게시하고 원하는 요소 만 게시하는 것입니다.

이 같은 빈 HTML 텍스트 요소를 제거하기 위해 jQuery를 사용할 수 있습니다 양식에서 그들을 제공하지 않으면

$(document).ready(function() { 
    $('#Search').submit(function(event) { 
    event.preventDefault(); 

    $('#Search select').each(function() { 
     $(this).val() == "" ? $(this).remove() : null; 
    }); 

    $(this).trigger('submit'); 
    }); 
}) 
0

, 속성은, 어쨌든 자신의 유형에 대한 기본 값을 갖게됩니다 당신 여부 쿼리 문자열에 포함 시키 든 아니든

는 모델 매개 변수에 널 (NULL) 확인 :

public class SellsLiveSearch 
{ 
    public int? HowManyRooms { get; set; } 
    public int? TimeRange { get; set; } 
    public int? TypeHome { get; set; } 
} 

그런 다음 컨트롤러에서, 그들이 설정 확인 :

public ActionResult Search(SellsLiveSearch model) 
{ 
    if (model.HowManyRooms.HasValue) 
    { 
     // ... 
    } 
} 
관련 문제